آجاکس - سرور جواب

onreadystatechange پرپریٹی

ریدی سٹیٹس این پرپریٹی XMLHttpRequest کی حالت کو رکھتی ہے

onreadystatechange این پرپریٹی جو ریدی سٹیٹس کی تبدیلی کے موقع پر چلنے والی فانکشن کا تعریف کرتی ہے

استینڈ این پرپریٹی اور استینڈ ٹیکسٹ این پرپریٹی کو رکھتا ہے XMLHttpRequest کی حالت

属性 描述
onreadystatechange اس فانکشن کو کال کیا جاتا ہے جب ریدی سٹیٹس پر تبدیلی آتی ہے
ریدی سٹیٹس

XMLHttpRequest کی حالت کو محفوظ رکھا گیا

  • 0: کریئر منظر نامزد نہیں
  • 1: سرور کنکشن قائم ہو چکا
  • 2: کریئر قبول کیا گیا
  • 3: کریئر منظر نامزد ہو چکا
  • 4: کریئر مکمل ہو چکا اور جواب تیار ہو چکا
استینڈ
  • 200: "OK"
  • 403: "Forbidden"
  • 404: "Page not found"

کامپلٹ لسٹ کے لئے، 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(); 

خود خود امتحان کریں