آجاکس - سرور جواب
- پیشین بلا درخواست AJAX
- پائیدار بلا فائل XML AJAX
onreadystatechange پرپریٹی
ریدی سٹیٹس
این پرپریٹی XMLHttpRequest کی حالت کو رکھتی ہے
onreadystatechange
این پرپریٹی جو ریدی سٹیٹس کی تبدیلی کے موقع پر چلنے والی فانکشن کا تعریف کرتی ہے
استینڈ
این پرپریٹی اور استینڈ ٹیکسٹ
این پرپریٹی کو رکھتا ہے XMLHttpRequest کی حالت
属性 | 描述 |
---|---|
onreadystatechange | اس فانکشن کو کال کیا جاتا ہے جب ریدی سٹیٹس پر تبدیلی آتی ہے |
ریدی سٹیٹس |
XMLHttpRequest کی حالت کو محفوظ رکھا گیا
|
استینڈ |
کامپلٹ لسٹ کے لئے، Http پیغام مرجع دستور |
استینڈ ٹیکسٹ | ریٹرن اسٹیٹس ٹیکسٹ (مثلاً "OK" یا "Not Found") |
جبکہ ریدی سٹیٹس تبدیلی کی وجہ سے
جب ریدی سٹیٹس
برای 4
،استینڈ
برای 200
جب، اس وقت جب
مثال
function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.ریدی سٹیٹس == 4 && this.استینڈ == 200) { document.getElementById("demo").innerHTML = this.responseText; }; }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); };
تعلیمات:onreadystatechange
پانچ بار (0-4) کسی بھی وقت، جبکہ ریدی سٹیٹس
تمام چیزوں میں تبدیلی ہوتی ہے۔
کالبیک فانکشن کا استعمال
ریٹرن فانکشن ایک ایسا فانکشن ہوتا ہے جو دوسرے فانکشن میں پارامٹر کے طور پر پاس کیا جاتا ہے۔
اگر آپ کا ویب سائٹ میں متعدد AJAX کریئرز ہیں تو آپ کو ایک فانکشن بنانا چاہئیے جس میں XMLHttpRequest اپنے آپ پر چلنے کا کام کرے اور ایک فانکشن بھی جو ہر AJAX کریئر کا ریٹرن کال کریں۔
该函数应当包含 URL 以及当响应就绪时调用的函数。
مثال
loadDoc("url-1", myFunction1); loadDoc("url-2", myFunction2); function loadDoc(url, cFunction) { var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { cFunction(this); }; }; xhttp.open("GET", url, true); xhttp.send(); }; function myFunction1(xhttp) { // 行动在这里 }; function myFunction2(xhttp) { // 行动在这里 };
服务器响应属性
属性 | 描述 |
---|---|
responseText | 获取字符串形式的响应数据 |
responseXML | 获取 XML 数据形式的响应数据 |
服务器响应方法
方法 | 描述 |
---|---|
getResponseHeader() | 从服务器返回特定的头部信息 |
getAllResponseHeaders() | 从服务器返回所有头部信息 |
responseText 属性
responseText
属性以 JavaScript 字符串的形式返回服务器响应,因此您可以这样使用它:
مثال
document.getElementById("demo").innerHTML = xhttp.responseText;
responseXML 属性
XML HttpRequest 对象有一个內建的 XML 解析器。
ResponseXML
属性以 XML DOM 对象返回服务器响应。
使用此属性,您可以把响应解析为 XML DOM 对象:
مثال
请求文件 music_list.xml,并对响应进行解析:
xmlDoc = xhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "
"; }; document.getElementById("demo").innerHTML = txt; xhttp.open("GET", "music_list.xml", true); xhttp.send();
您将在本教程的 DOM 章节学到更多有关 XML DOM 的知识。
getAllResponseHeaders() طریقہ کار
getAllResponseHeaders()
طریقہ سرور کی جواب میں تمام سرخیوں کو باز میل میں فراہم کرتا ہے۔
مثال
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); }; };
getResponseHeader() طریقہ کار
getResponseHeader()
طریقہ سرور کی جواب میں معین کئے ہوئے سرور کی سرخیوں کو باز میل میں فراہم کرتا ہے。
مثال
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getResponseHeader("Last-Modified"); }; }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send();
- پیشین بلا درخواست AJAX
- پائیدار بلا فائل XML AJAX