国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

jQuery Ajax的readyState和status的區別和使用詳解

2024-09-01 08:27:19
字體:
來源:轉載
供稿:網友

在前幾篇分析了jquery的ajax異步和同步,以及異常的一些處理,感覺還沒有把ajax的readyState和status說清楚.今天就來說說ajax狀態的那點事。

jquery ajax函數源代碼是這樣的:

var getXmlHttpRequest = function () {  if (window.XMLHttpRequest) {    //主流瀏覽器提供了XMLHttpRequest對象    return new XMLHttpRequest();  }  else if (window.ActiveXObject) {    //低版本的IE瀏覽器沒有提供XMLHttpRequest對象    //所以必須使用IE瀏覽器的特定實現ActiveXObject    return new ActiveXObject("Microsoft.XMLHTTP");  }};var xhr = getXmlHttpRequest();xhr.onreadystatechange = function () {  if (xhr.readyState === 4 && xhr.status === 200) {    //獲取成功后執行操作    //數據在xhr.responseText  }};xhr.open("TYPE", "URL", true);xhr.send("");

什么是readyState

  readyState是XMLHttpRequest對象的一個屬性,用來標識當前XMLHttpRequest對象處于什么狀態。

  readyState總共有5個狀態值,分別為0~4,每個值代表了不同的含義,如下表所示:

  0    未初始化狀態:此時,已經創建了一個XMLHttpRequest對象

  1  準備發送狀態:此時,已經調用了XMLHttpRequest對象的open方法,并且XMLHttpRequest對象已經準備好將一個請求發送到服務器端

  2  已經發送狀態:此時,已經通過send方法把一個請求發送到服務器端,但是還沒有收到一個響應

  3  正在接收狀態:此時,已經接收到HTTP響應頭部信息,但是消息體部分還沒有完全接收到

  4  完成響應狀態:此時,已經完成了HTTP響應的接收

什么是status

  status是XMLHttpRequest對象的一個屬性,表示響應的HTTP狀態碼。

  在HTTP1.1協議下,HTTP狀態碼總共可分為5大類,如下表所示:

  1XX    服務器收到請求,需要繼續處理。例如101狀態碼,表示服務器將通知客戶端使用更高版本的HTTP協議。

  2XX    請求成功。例如200狀態碼,表示請求所希望的響應頭或數據體將隨此響應返回。

  3XX    重定向。例如302狀態碼,表示臨時重定向,請求將包含一個新的URL地址,客戶端將對新的地址進行GET請求。

  4XX    客戶端錯誤。例如404狀態碼,表示客戶端請求的資源不存在。

  5XX    服務器錯誤。例如500狀態碼,表示服務器遇到了一個未曾預料的情況,導致了它無法完成響應,一般來說,這個問題會在程序代碼出錯時出現。

拋出問題

  為什么onreadystatechange的函數實現要同時判斷readyState和status呢?

  我們知道 readyState === 4 已經表示了請求響應成功了,為什么還要后續的status呢?帶著問題,我們開始來做一些試驗吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汤原县| 吴江市| 滦南县| 元谋县| 乐陵市| 盖州市| 图们市| 新民市| 砚山县| 辽宁省| 湘西| 文山县| 德令哈市| 梧州市| 三原县| 芮城县| 启东市| 伊宁县| 崇信县| 当雄县| 邹城市| 双城市| 苗栗市| 繁昌县| 共和县| 慈溪市| 白朗县| 英超| 吴江市| 嘉善县| 惠东县| 钦州市| 福州市| 夏河县| 洪雅县| 株洲县| 林周县| 日喀则市| 五华县| 常德市| 惠水县|