中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • readyState和status屬性是什么以及AJAX怎樣接收服務器返回的數據

readyState和status屬性是什么以及AJAX怎樣接收服務器返回的數據

發布時間:2021-10-27 16:32:57 來源:億速云 閱讀:178 作者:柒染 欄目:開發技術

readyState和status屬性是什么以及AJAX怎樣接收服務器返回的數據,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

  在講解如何接收服務器數據之前,先來看一下 XMLHttpRequest 對象的 readyState 和 status 屬性。下面億速云小編來講解下readyState 和 status 屬性是什么?AJAX怎樣接收服務器返回的數據?

  readyState 和 status 屬性是什么

  readyState 屬性保存有 XMLHttpRequest 對象的交互狀態,從 0 到 4 變化:

  0 :未初始化(還沒有調用send()方法);

  1:載入(已調用send()方法,正在發送請求);

  2:載入完成(send()方法執行完成,已經接收到全部響應數據);

  3:交互(正在解析響應數據);

  4:完成(響應數據解析完成,可以在客戶端調用了)。

  status 屬性保存有 XMLHttpRequest 對象與后臺交互時服務器返回的一個狀態碼。例如:

  200:OK,請求發送成功;

  404:未找到頁面。

  查看完整的 status 狀態碼:Ajax status 狀態對照表

  注意:readyState 和 status 的含義不同,readyState 是XMLHttpRequest 對象的交互狀態,共有 5 個狀態,與服務器無關;status 是服務器返回的一個狀態碼,表示服務器的響應結果,例如,200 表示服務器響應成功,404 表示請求的文件在服務器上不存在。

  AJAX 請求成功,xmlhttp.readyState=4,xmlhttp.statue=200,代碼:

  if (xmlhttp.readyState==4 && xmlhttp.status==200){

  // AJAX 請求成功,處理響應數據

  }

  事件句柄 onreadystatechange

  onreadystatechange 是一個事件句柄,存儲函數(或函數名),每當 readyState 屬性改變時,就會調用該函數。

  當發送一個 AJAX 請求后,客戶端無法確定請求何時完成,所以需要用事件機制來捕獲請求的狀態,即 readyState 的值,onreadyStateChange 實現了這一功能。

  如下代碼所示:

  xmlhttp.onreadystatechange=function(){

  // 每次改變 readyState,都會調用該方法

  if (xmlhttp.readyState==4 && xmlhttp.status==200){

  // AJAX 請求成功,處理響應數據

  }

  }

  AJAX怎樣接收服務器返回的數據

  接收來自服務器的響應數據,請使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性。

  屬性 描述

  responseText 將響應數據作為字符串解析。

  responseXML 將響應數據作為 XML 解析。

  例如,將服務器返回的數據更新到 id="demo" 的節點:

  ?

  1

  document.getElementById("demo").innerHTML=xmlhttp.responseText ;

  注意:服務器返回的數據一般作為字符串來解析,很少作為 XML 來解析,這里不再講述 responseXML 。

  到此,我們終于可以實現一個完整的 AJAX 請求了。

  下面的代碼展示了如何獲取客戶端 IP 地址:

  script type="text/javascript">

  var xmlhttp;

  // 創建 XMLHttpRequest 對象

  try{

  // code for IE7+, Firefox, Chrome, Opera, Safari

  xmlhttp=new XMLHttpRequest();

  }catch(e){

  // code for IE6, IE5

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

  xmlhttp.onreadystatechange=function(){

  if (xmlhttp.readyState==4 && xmlhttp.status==200){ // 響應成功

  document.getElementById("demo").innerHTML=xmlhttp.responseText;

  }

  }

  xmlhttp.open("POST","/demo/javascript/ajax/ajaxDemo.php?action=getIP",true);

  xmlhttp.send();

  /script>

  注意:onreadystatechange 需要在請求發送之前設定,編寫代碼時,要寫在 open() 和 send() 之前。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南部县| 雷山县| 微博| 博爱县| 当涂县| 泗洪县| 莱西市| 綦江县| 东宁县| 白朗县| 安达市| 玉林市| 香港| 寿宁县| 革吉县| 济源市| 谢通门县| 新余市| 吉首市| 林芝县| 仁怀市| 石屏县| 石阡县| 宁远县| 桃源县| 桓台县| 库尔勒市| 施甸县| 岑溪市| 海宁市| 仲巴县| 亳州市| 沁水县| 汕头市| 方山县| 石屏县| 漳州市| 德阳市| 怀仁县| 定陶县| 平山县|