Ajax的實(shí)現(xiàn) 和 readState狀態(tài)

ajax的實(shí)現(xiàn)

var getXmlHttpRequest = function () {
  if (window.XMLHttpRequest) {
    //主流瀏覽器提供了XMLHttpRequest對象
    return new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    //低版本的IE瀏覽器沒有提供XMLHttpRequest對象
    //所以必須使用IE瀏覽器的特定實(shí)現(xiàn)ActiveXObject
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4 && xhr.status === 200) {
    //獲取成功后執(zhí)行操作
    //數(shù)據(jù)在xhr.responseText
  }
};
xhr.open("TYPE", "URL", true); //get/post  url  boolean表示是否使用異步
xhr.send(""); // get-> send(null)  post-> send(data)

readyState的五種狀態(tài)

  1. 請求尚未初始化, 已經(jīng)創(chuàng)建了一個XMLHttpRequest對象
  2. 服務(wù)器鏈接已經(jīng)建立, 已經(jīng)調(diào)用了XMLHttpRequest對象的open方法,并且XMLHttpRequest對象已經(jīng)準(zhǔn)備好將一個請求發(fā)送到服務(wù)器端
  3. 請求已經(jīng)發(fā)送, 已經(jīng)通過send方法把一個請求發(fā)送到服務(wù)器端,但是還沒有收到一個響應(yīng)
  4. 請求處理中, 已經(jīng)接收到HTTP響應(yīng)頭部信息,但是消息體部分還沒有完全接收到
  5. 請求完成, 且響應(yīng)已經(jīng)就緒

status狀態(tài)嗎

status是XMLHttpRequest對象的一個屬性,表示響應(yīng)的HTTP狀態(tài)碼。

在HTTP1.1協(xié)議下,HTTP狀態(tài)碼總共可分為5大類,如下表所示:

  1. 1XX 服務(wù)器收到請求,需要繼續(xù)處理。例如101狀態(tài)碼,表示服務(wù)器將通知客戶端使用更高版本的HTTP協(xié)議。

  2. 2XX 請求成功。例如200狀態(tài)碼,表示請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。

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

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

  5. 5XX 服務(wù)器錯誤。例如500狀態(tài)碼,表示服務(wù)器遇到了一個未曾預(yù)料的情況,導(dǎo)致了它無法完成響應(yīng),一般來說,這個問題會在程序代碼出錯時出現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,982評論 19 139
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,183評論 6 13
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,278評論 0 7
  • 本文詳細(xì)介紹了 XMLHttpRequest 相關(guān)知識,涉及內(nèi)容: AJAX、XMLHTTP、XMLHttpReq...
    semlinker閱讀 13,767評論 2 18
  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高,建議使用雙通...
    有涯逐無涯閱讀 2,607評論 0 6