XML DOM - XMLHttpRequest اوبجیکٹ

XMLHttpRequest آئی وی جی

XMLHttpRequest اوبجیکٹ نے ایچ ٹی پی پروٹوکول کی پوری رسائی فراہم کرتی ہے، جس میں پوسٹ اور ہیڈ ریکویسٹ اور عام جیٹ ریکویسٹ کی قابلیت شامل ہے۔ XMLHttpRequest ووب سروسرو کی جواب دہی کو سینک یا اسیزنک طور پر واپس لایا سکتا ہے، اور وہ متن یا ایک ڈی اوم ڈوکومن کی شکل میں مطلب واپس لایا سکتا ہے。

جس کا نام XMLHttpRequest ہے، وہ صرف XML ڈوکومن کے ساتھ استعمال کے لئے محدود نہیں ہے: وہ کسی بھی شکل کا ٹیکسٹ ڈوکومن کو سکھا سکتا ہے。

XMLHttpRequest اوبجیکٹ نام کیا گیا ہے، اے جی ایکس ویب اپلی کیشن آرکٹیچر کی ایک کلیدی فیچر ہے。

بلاوزر سپورٹ

XMLHttpRequest جیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیا بجیسیa XMLHttpRequest آئی وی جی 这一节所介绍的。

W3C 标准化

XMLHttpRequest 对象还没有标准化,但是 W3C 已经开始了标准化的工作,本手册介绍的内容都是基于标准化的工作草案。

ਮੌਜੂਦਾ XMLHttpRequest ਸ਼ੁਦਾਹਰਨ ਦੀ ਇੱਕਸੁਰਤਾ ਬਹੁਤ ਕਰੀਬ ਹੈ। ਪਰ ਮਿਆਰ ਨਾਲ ਥੋੜੇ ਅੰਤਰ ਹਨ। ਉਦਾਹਰਣ ਵਜੋਂ, ਇੱਕ ਸ਼ੁਦਾਹਰਨ ਮੁੱਲ null ਵਾਪਸ ਦੇ ਸਕਦਾ ਹੈ, ਜਦੋਂ ਮਿਆਰ ਰਿਕਵਰ ਵਾਪਸ ਖਾਲੀ ਸਟ੍ਰਿੰਗ ਚਾਹੁੰਦਾ ਹੈ, ਜਾਂ ਇੱਕ ਸ਼ੁਦਾਹਰਨ ਮੁੱਲ 3 ਵਾਪਸ ਦੇ ਸਕਦਾ ਹੈ ਜਦੋਂ ਸਾਰੇ ਜਵਾਬ ਸਰਵਿਕਾਰ ਪ੍ਰਾਪਤ ਹੋਣਾ ਚਾਹੁੰਦਾ ਹੈ ਅਤੇ ਇਸ ਨੂੰ ਯਕੀਨੀ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ ਹੈ。

ਗੁਣ

readyState

HTTP ਬੇਨਤੀ ਦੀ ਸਥਿਤੀ।ਜਦੋਂ XMLHttpRequest ਪਹਿਲੀ ਵਾਰ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਸ ਗੁਣ ਦਾ ਮੁੱਲ 0 ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਹ ਮੁੱਲ ਪੂਰੇ HTTP ਜਵਾਬ ਪ੍ਰਾਪਤ ਹੋਣ ਤੱਕ ਵਧਦਾ ਰਹਿੰਦਾ ਹੈ。

5 ਸਥਿਤੀਆਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਨੂੰ ਇੱਕ ਸ਼ਰਤੀ ਨਾਮ ਨਾਲ ਜੋੜਿਆ ਗਿਆ ਹੈ, ਹੇਠ ਲਿਖੇ ਸਥਿਤੀ, ਨਾਮ ਅਤੇ ਮਹੱਤਵ ਦੀ ਸੂਚੀ ਦਿੱਤੀ ਗਈ ਹੈ:

ਸਥਿਤੀ ਨਾਮ ਵਰਣਨ
0 Uninitialized ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ।XMLHttpRequest ਆਬਜੈਕਟ ਬਣਾਇਆ ਗਿਆ ਹੈ ਜਾਂ abort() ਮੈਥਡ ਰਾਹੀਂ ਮਿਟਾਇਆ ਗਿਆ ਹੈ。
1 Open open() ਮੈਥਡ ਨੂੰ ਬੁਲਾਇਆ ਗਿਆ ਹੈ, ਪਰ send() ਮੈਥਡ ਨੂੰ ਬੁਲਾਇਆ ਨਹੀਂ ਗਿਆ ਹੈ। ਬੇਨਤੀ ਪਹਿਲਾਂ ਤੋਂ ਭੇਜੀ ਨਹੀਂ ਗਈ ਹੈ。
2 Sent Send() ਮੈਥਡ ਨੂੰ ਬੁਲਾਇਆ ਗਿਆ ਹੈ, HTTP ਬੇਨਤੀ ਵੈੱਬ ਸਰਵਰ ਨੂੰ ਭੇਜ ਦਿੱਤੀ ਗਈ ਹੈ। ਜਵਾਬ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋਇਆ ਹੈ。
3 Receiving ਸਾਰੇ ਜਵਾਬ ਸਰਵਿਕਾਰ ਪ੍ਰਾਪਤ ਹੋ ਚੁੱਕੇ ਹਨ। ਜਵਾਬ ਬੋਧੀ ਦਾ ਸੰਚਾਰ ਹੋ ਰਿਹਾ ਹੈ, ਪਰ ਇਹ ਪੂਰਾ ਨਹੀਂ ਹੋ ਚੁੱਕਿਆ ਹੈ。
4 Loaded HTTP ਜਵਾਬ ਹੋਰ ਤੋਂ ਪੂਰਾ ਪ੍ਰਾਪਤ ਹੋ ਚੁੱਕਿਆ ਹੈ。

readyState ਦਾ ਮੁੱਲ ਘੱਟ ਨਹੀਂ ਹੋ ਸਕਦਾ, ਜਦੋਂ ਤਕ ਇੱਕ ਬੇਨਤੀ ਪ੍ਰੋਸੈਸ ਵਿੱਚ ਹੈ ਅਤੇ abort() ਜਾਂ open() ਮੈਥਡ ਨੂੰ ਬੁਲਾਇਆ ਨਹੀਂ ਗਿਆ ਹੈ। ਹਰ ਵਾਰ ਜਦੋਂ ਇਸ ਗੁਣ ਦਾ ਮੁੱਲ ਵਧਦਾ ਹੈ, ਤਾਂ onreadystatechange ਈਵੈਂਟ ਹੈਂਡਲਰ ਨੂੰ ਟ੍ਰਿਗਰ ਕੀਤਾ ਜਾਵੇਗਾ。

responseText

ਹੁਣ ਤੱਕ ਸਰਵਰ ਵੱਲੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਜਵਾਬ ਬੋਧੀ (ਸਿਰਫ ਮੁੱਖ ਸ਼ੀਰਸ਼ੀ ਨੂੰ ਛੱਡ ਕੇ), ਜਾਂ ਜੇਕਰ ਹੁਣ ਤੱਕ ਕੋਈ ਵੀ ਸਮਾਚਾਰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋਇਆ ਹੈ, ਤਾਂ ਇਹ ਖਾਲੀ ਸਟ੍ਰਿੰਗ ਹੋਵੇਗਾ。

ਜੇਕਰ readyState ਤੋਂ ਘੱਟ ਹੈ, ਤਾਂ ਇਹ ਗੁਣ ਇੱਕ ਖਾਲੀ ਸਟ੍ਰਿੰਗ ਹੋਵੇਗਾ। ਜਦੋਂ readyState 3 ਹੋਵੇ, ਇਹ ਗੁਣ ਹਾਲ ਹੀ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਜਵਾਬ ਦਾ ਹਿੱਸਾ ਵਾਪਸ ਦੇਵੇਗਾ। ਜਦੋਂ readyState 4 ਹੋਵੇ, ਇਹ ਗੁਣ ਪੂਰੇ ਜਵਾਬ ਬੋਧੀ ਨੂੰ ਸੰਭਾਲੇਗਾ。

ਜੇਕਰ ਜਵਾਬ ਵਿੱਚ ਰਿਸਪਾਂਸ ਬੋਧੀ ਲਈ ਸ਼ਰਤੀ ਹੈ, ਤਾਂ ਉਸ ਸ਼ਰਤੀ ਦਾ ਇਸਤੇਮਾਲ ਕਰੋ। ਨਹੀਂ ਤਾਂ ਅਨੁਮਾਨ ਕੀਤਾ ਜਾਵੇਗਾ ਕਿ Unicode UTF-8 ਵਰਤਿਆ ਗਿਆ ਹੈ。

responseXML

ਬੇਨਤੀ ਦੇ ਜਵਾਬ ਨੂੰ, XML ਵਿੱਚ ਵਿਵਸਥਿਤ ਕਰੋ ਅਤੇ ਇਸ ਨੂੰ دستاویز اُبجیکٹ返回。

status

由服务器返回的 HTTP 状态代码,如 200 表示成功,而 404 表示 "Not Found" 错误。当 readyState 小于 3 的时候读取这一属性会导致一个异常。

statusText

这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。也就是说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found"。和 status 属性一样,当 readyState 小于 3 的时候读取这一属性会导致一个异常。

事件句柄

onreadystatechange

每次 readyState 属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。

ਮੈਥਡ

abort()

ਮੌਜੂਦਾ ਪ੍ਰਤੀਕਿਰਿਆ ਨੂੰ ਰੱਦ ਕਰੋ, ਕੁਨੈਕਸ਼ਨ ਬੰਦ ਕਰੋ ਅਤੇ ਸਾਰੀਆਂ ਲੰਬਿਤ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀਆਂ ਨੂੰ ਸਮਾਪਤ ਕਰੋ。

ਇਹ ਮੈਥਡ XMLHttpRequest ਆਬਜੈਕਟ ਨੂੰ readyState 0 ਦੇ ਰੂਪ ਵਿੱਚ ਰੀਸੈੱਟ ਕਰਦਾ ਹੈ ਅਤੇ ਸਾਰੇ ਲੰਬਿਤ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀਆਂ ਨੂੰ ਰੱਦ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ ਜੇਕਰ ਰਿਕਾਰਡ ਨੇ ਬਹੁਤ ਸਮਾਂ ਲਿਆ ਅਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਮੈਥਡ ਨੂੰ ਬੁਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ。

getAllResponseHeaders()

HTTP ਰਿਕਾਰਡ ਸਪੈਨਸਰ ਨੂੰ ਨਾਪੜੇ ਹੋਏ ਸਟਰਿੰਗ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਦਿੰਦਾ ਹੈ。

ਜੇਕਰ readyState ਘੱਟ ਹੈ ਤਾਂ ਇਹ ਮੈਥਡ null ਵਾਪਸ ਦਿੰਦਾ ਹੈ। ਅਤੇ ਹੋਰ ਤੌਰ 'ਤੇ ਇਹ ਮੈਥਡ ਸਰਵਰ ਦੁਆਰਾ ਭੇਜੇ ਹੋਏ ਸਾਰੇ HTTP ਰਿਕਾਰਡ ਸਪੈਨਸਰਾਂ ਨੂੰ ਵਾਪਸ ਦਿੰਦਾ ਹੈ। ਸਪੈਨਸਰ ਇੱਕ ਅਲੀਗੇਟਮੈਟਿਕਲ ਸਟਰਿੰਗ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹਰੇਕ ਸਪੈਨਸਰ ਨੂੰ ਇੱਕ ਨਵੇਂ ਲਾਈਨ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਹਰੇਕ ਲਾਈਨ ਨੂੰ ਰਿਕਾਰਡ ਸਪੈਨਸਰ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹਰੇਕ ਲਾਈਨ ਨੂੰ ਰਿਕਾਰਡ ਸਪੈਨਸਰ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ。

getResponseHeader()

ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸੈੱਟ ਸਪੈਨਸਰ ਦਾ ਮੁੱਲ ਹੈਕਸ ਸਪੈਨਸਰ ਦਾ ਮੁੱਲ ਹੈ। ਉਹ ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸਪੈਨਸਰ ਦਾ ਨਾਮ ਹੈ ਜਿਸ ਨੂੰ ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸਪੈਨਸਰ ਦਾ ਮੁੱਲ ਹੈ। ਕੋਈ ਮਾਤਰਾ ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸਪੈਨਸਰ ਦਾ ਨਾਮ ਵਿੱਚ ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸਪੈਨਸਰ ਦਾ ਨਾਮ ਵਿੱਚ ਵਾਪਸ ਵਿਸ਼ੇਸ਼ ਸਪੈਨਸਰ ਦਾ ਨਾਮ ਹੈ।

ਇਸ ਮੈਥਡ ਦਾ ਵਾਪਸੀ ਮੁੱਲ ਹੈਕਸ ਸੈੱਟ ਸਪੈਨਸਰ ਦਾ ਮੁੱਲ ਹੈ। ਜੇਕਰ ਇਸ ਸਪੈਨਸਰ ਨੂੰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾਂ readyState ਹੋਰ ਕਰਕੇ 3 ਤੋਂ ਘੱਟ ਹੈ ਤਾਂ ਰਿਕਟ ਸਟਰਿੰਗ ਹੈ। ਜੇਕਰ ਕਈ ਸਪੈਨਸਰ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਹਨ ਤਾਂ ਉਹ ਅਲਾਟਮੈਟਿਕਲ ਪ੍ਰਕਾਰ ਨਾਲ ਜੋੜੇ ਜਾਣਗੇ ਅਤੇ ਵਾਪਸ ਮੁੱਲ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ ਅਤੇ ਵੱਖ-ਵੱਖ ਸਪੈਨਸਰ ਦੇ ਮੁੱਲ ਵਿੱਚ ਸਪੈਨਸਰ ਦੇ ਸਪੈਨਸਰ ਵਿੱਚ ਸਪੈਨਸਰ ਦਾ ਸਪੈਨਸਰ ਹੈ।

open()

HTTP ਰਿਕਾਰਡ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸੈੱਟ ਕਰੋ ਜਿਵੇਂ ਕਿ URL ਅਤੇ HTTP ਮੈਥਡ ਪਰ ਰਿਕਾਰਡ ਨੂੰ ਭੇਜੋ ਨਹੀਂ。

send()

HTTP ਰਿਕਾਰਡ ਭੇਜੋ ਜਿਸ ਨੂੰ open() ਮੈਥਡ ਦੇ ਪੈਰਾਮੀਟਰ ਦੇ ਰੂਪ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਹੈ ਅਤੇ ਮੈਥਡ ਨੂੰ ਦਿੱਤੇ ਗਏ ਵਿਕਲਪਿਤ ਰਿਕਾਰਡ ਸਮੱਬੰਧੀ ਸਮਾਚਾਰ ਨਾਲ。

setRequestHeader()

ਇੱਕ ਖੁੱਲ੍ਹਾ ਪਰ ਮੋਕਲੇ ਨਹੀਂ ਹੋਏ ਰਿਕਾਰਡ ਨੂੰ HTTP ਰਿਕਾਰਡ ਸੈੱਟ ਕਰੋ ਜਾਂ ਜੋੜੋ。

XMLHttpRequest.open()

初始化 HTTP 请求参数

语法

open(method, url, async, username, password)

method 参数是用于请求的 HTTP 方法。值包括 GET、POST 和 HEAD。

url 参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。

async پارامتر کوشش کو ایک طرح سے غیر متعدد طریقے سے انجام دینا کا معنادار ہوتا ہے۔ اگر اس پارامتر کو false مقرر کیا گیا ہو، تو کوشش سینکریئس ہوتی ہے، اور send() کوشش کیلئے بلاک کئے جاتا ہے، تاکہ جواب کا پورا حصول ہو جائے۔ اگر اس پارامتر کو true یا چھوڑا گیا ہو، تو کوشش غیر متعدد طریقے سے ہوتی ہے، اور اکثر طور پر onreadystatechange کا ایک اونجلی سینٹنس کی ضرورت ہوتی ہے۔

username اور password پارامتر اختیاری ہیں، اور وہ آپریشن کیلئے ضروری اختیاری وصولی کی اجازت فراہم کرتے ہیں۔ اگر مقرر کئے گئے ہیں تو، وہ آپریشن کیلئے مقرر کردہ کوئی بھی وصولی کو مستعفیٰ کردیں گے۔

说明

اس کوشش کو کوشش کیلئے استعمال کئے جانے والے پارامتروں کو تیار رکھتا ہے تاکہ بعد میں send() کوشش کیلئے استعمال کئے جاسکیں۔ یہ readyState کو 1 میں رکھتا ہے، پچھلے مقرر کردہ تمام کوشش سرخیوں کو حذف کرتا ہے، پچھلے حاصل کردہ تمام جواب سرخیوں کو حذف کرتا ہے اور responseText، responseXML، status اور statusText پارامتروں کو ان کی طبیعی اقدار میں رکھتا ہے۔ جب readyState 0 ہو (XMLHttpRequest اُبجیکٹ کی تشکیل یا abort() کوشش کے بعد) اور جب readyState 4 ہو (جواب حاصل کرنے کے بعد) تو اس کوشش کو بولی دینا محفوظ ہوتا ہے۔ جب کسی دوسری حالت کیلئے اس کوشش کو بولی دیا جاتا ہو، تو open() کوشش کا عمل مقرر کردہ ہوتا ہے۔

send() کوشش کیلئے استعمال کئے جانے والے پارامتروں کو محفوظ رکھنے اور XMLHttpRequest اُبجیکٹ کو دوبارہ استعمال کیلئے ری سٹ کئے جانے کے علاوہ، open() کوشش کوئی دوسرا عمل نہیں کرتا۔ یقین فراہم کریں کہ، جب اس کوشش کو بولی دیا جاتا ہے تو، عمل کردار کا اکثر طور پر کوئی نیٹ ورک کنکشن وب سروئرس تک کھولنا نہیں ہوتا۔

XMLHttpRequest.send()

ایک HTTP کوشش ارسال کرنا

语法

بادی ارسال کرنا

اگر کسی طریقے کو open() کے ذریعے مقرر کیا گیا ہو، جو POST یا PUT ہو، تو بادی پارامتر کو کوشش کیلئے مقرر کیا جاتا ہے، جو کسی اشارتی یا دستاویز اُبجیکٹاگر مندرجہ ناخوبی نہیں ضروری ہو، تو اس پارامتر کو null رکھا جاتا ہے۔ کسی دوسری کوشش کیلئے، اس پارامتر قابل استعمال نہیں ہوتا، اس کو null رکھنا چاہئیے (کچھ عمل کرداروں میں اس کو چھوڑ سکتے ہیں)。

说明

这个方法导致一个 HTTP 请求发送。如果之前没有调用 open(),或者更具体地说,如果 readyState 不是 1,send() 抛出一个异常。否则,它发送一个 HTTP 请求,该请求由以下几部分组成:

  • 之前调用 open() 时指定的 HTTP 方法、URL 以及认证资格(如果有的话)。
  • 之前调用 setRequestHeader() 时指定的请求头部(如果有的话)。
  • 传递给这个方法的 body 参数。

一旦请求发布了,send() 把 readyState 设置为 2,并触发 onreadystatechange 事件句柄。

如果之前调用的 open() 参数 async 为 false,这个方法会阻塞并不会返回,直到 readyState 为 4 并且服务器的响应被完全接收。否则,如果 async 参数为 true,或者这个参数省略了,send() 立即返回,并且正如后面所介绍的,服务器响应将在一个后台线程中处理。

如果服务器响应带有一个 HTTP 重定向,send() 方法或后台线程自动遵从重定向。当所有的 HTTP 响应头部已经接收,send() 或后台线程把 readyState 设置为 3 并触发 onreadystatechange 事件句柄。如果响应较长,send() 或后台线程可能在状态 3 中触发 onreadystatechange 事件句柄:这可以作为一个下载进度指示器。最后,当响应完成,send() 或后台线程把 readyState 设置为 4,并最后一次触发事件句柄。

XMLHttpRequest.setRequestHeader()

语法

setRequestHeader(name, value)

name 参数是要设置的头部的名称。这个参数不应该包括空白、冒号或换行。

value 参数是头部的值。这个参数不应该包括换行。

说明

setRequestHeader() 方法指定了一个 HTTP 请求的头部,它应该包含在通过后续 send() 调用而发布的请求中。这个方法只有当 readyState 为 1 的时候才能调用,例如,在调用了 open() 之后,但在调用 send() 之前。

如果带有指定名称的头部已经被指定了,这个头部的新值就是:之前指定的值,加上逗号、空白以及这个调用指定的值。

如果 open() 调用指定了认证资格,XMLHttpRequest 自动发送一个适当的 Authorization 请求头部。但是,你可以使用 setRequestHeader() 来添加这个头部。类似地,如果 Web 服务器已经保存了和传递给 open() 的 URL 相关联的 cookie,适当的 Cookie 或 Cookie2 头部也自动地包含到请求中。可以通过调用 setRequestHeader() 来把这些 cookie 添加到头部。XMLHttpRequest 也可以为 User-Agent 头部提供一个默认值。如果它这么做,你为该头部指定的任何值都会添加到这个默认值后面。

ਕੁਝ ਬੇਨਤੀ ਹੈੱਡਰ ਕੋਈ ਵੀ ਮੇਥਡ ਦੁਆਰਾ ਸੈਟ ਨਹੀਂ ਕੀਤੇ ਗਏ ਹਨ, ਬਲਕਿ XMLHttpRequest ਦੁਆਰਾ ਸਵੈਚਾਲਿਤ ਤੌਰ 'ਤੇ ਸੈਟ ਕੀਤੇ ਗਏ ਹਨ, ਤਾਕਿ HTTP ਪ੍ਰੋਟੋਕੋਲ ਨਾਲ ਮੇਲ ਖਾਣ।ਇਹ ਅਜਿਹੇ ਹੈੱਡਰ ਸ਼ਾਮਲ ਹਨ ਜੋ ਪ੍ਰੋਕਸੀ ਨਾਲ ਸਬੰਧਤ ਹਨ:

  • Host
  • Connection
  • Keep-Alive
  • Accept-charset
  • Accept-Encoding
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Range