XMLHttpRequest

XMLHttpRequest

  • 創(chuàng)建:
var createXHR = function(){
    var xhr = false;
    try{
        xhr = new XMLHttpRequest();//嘗試直接創(chuàng)建攻礼,適用于IE以外的大多數(shù)瀏覽器
    }
    catch(e){
        try{
            xhr = new ActiveXObject('Mxsm112.XMLHTTP');//嘗試使用較新版本IE的創(chuàng)建方式
        }
        catch(e){
            try{
                xhr = new ActiveXObject('Microsoft.XMLHTTP');//嘗試使用較老版本IE的創(chuàng)建方式
            }
            catch(e){
                xhr = false;//創(chuàng)建失敗业踢,返回false提示
                console.log(e.name + ' : ' + e.message);
            }
        }
    }
    return xhr;
}
  • 方法:
  • open(method,url,async) :
  • method指定請(qǐng)求使用的方法,包括GET礁扮、POST知举、HEAD瞬沦、DELETE;
  • url即請(qǐng)求地址雇锡;
  • async規(guī)定是否啟用異步請(qǐng)求逛钻,異步請(qǐng)求將直接返回,需要使用事件監(jiān)聽(tīng)器在響應(yīng)就緒后動(dòng)態(tài)處理锰提,默認(rèn)為true曙痘;
  • send() : 發(fā)送請(qǐng)求并根據(jù)同步異步設(shè)定適時(shí)返回,接受一個(gè)可選的請(qǐng)求體作為參數(shù)(在GET和HEAD中被忽略)立肘;
  • abort() : 立即中斷已經(jīng)發(fā)送的請(qǐng)求边坤;對(duì)應(yīng)請(qǐng)求的就緒狀態(tài)被置為0,但不會(huì)觸發(fā)readystatechange事件谅年;
  • onreadystatechange() : 當(dāng)readyState發(fā)生變化時(shí)執(zhí)行的事件處理函數(shù)茧痒;
  • ontimeout() : 請(qǐng)求超時(shí)后調(diào)用的方法;
  • 屬性:
  • readyState:
  • 0 請(qǐng)求未初始化融蹂,open()未調(diào)用旺订;
  • 1 請(qǐng)求已建立,未發(fā)送超燃,send()尚未調(diào)用耸峭;
  • 2 請(qǐng)求已發(fā)送,處理中淋纲,可以從響應(yīng)中獲取首部(header)和狀態(tài)(status)劳闹;
  • 3 響應(yīng)處理中,響應(yīng)中已有部分?jǐn)?shù)據(jù)可用洽瞬,但未完全就緒本涕;
  • 4 響應(yīng)已就緒;
  • 注意伙窃,各瀏覽器中對(duì)就緒狀態(tài)的處理并不一致菩颖,不能過(guò)于依賴狀態(tài)來(lái)執(zhí)行操作,測(cè)試在chrome(53)和Firefox(43)中onreadystatechange方法只能在狀態(tài)1和4時(shí)被調(diào)用为障,IE(11)則更奇特晦闰,依次出現(xiàn)了1、1鳍怨、2摄咆、3鬓椭、4的狀態(tài),1出現(xiàn)了兩次。
  • 無(wú)法通過(guò)onreadystatechange()僅在就緒狀態(tài)發(fā)生改變時(shí)被調(diào)用副渴,但在readyState被在請(qǐng)求中斷(abort()被調(diào)用)被置0時(shí)不會(huì)觸發(fā)該方法复濒,因而無(wú)法通過(guò)該方法獲取readyState為0的狀態(tài),只能在請(qǐng)求未初始化或被中斷時(shí)手動(dòng)獲取纽疟;
  • upload:
  • 返回一個(gè)代表上傳過(guò)程的對(duì)象,可以在其上注冊(cè)事件監(jiān)聽(tīng)器以追蹤上傳進(jìn)程憾赁;
  • 可選事件監(jiān)聽(tīng)器包括
  • onloadstart : the fetch starts (請(qǐng)求開(kāi)始裝載數(shù)據(jù)時(shí)調(diào)用的方法)
  • onprogress : data transfer is going on (周期性調(diào)用的反饋上傳進(jìn)度的方法)
  • onabort : the fetch operation was aborted (請(qǐng)求中斷后調(diào)用的方法)
  • onerror : the fetch failed (請(qǐng)求中出現(xiàn)錯(cuò)誤時(shí)調(diào)用的方法)
  • onload : the fetch succeeded (請(qǐng)求在抓取內(nèi)容成功后返回時(shí)調(diào)用的方法)
  • ontimeout : the fetch operation didn't complete by the timeout the author specified (請(qǐng)求超時(shí)調(diào)用的方法)
  • onloadend : the fetch operation completed (either failed or succeeded)
  • response:
  • 返回相應(yīng)的實(shí)體主體(response entity body)污朽,具體類型取決于responseType的值,在1.0中只有DOMString和 Document龙考,在2.0中擴(kuò)充了Blob蟆肆、FormData、ArrayBuffer洲愤、File等颓芭;
  • 當(dāng)responseType為‘text’或空,response在請(qǐng)求處于loading狀態(tài)時(shí)保存部分響應(yīng)文本(response text)顷锰;
  • responseType: 返回一個(gè)定義響應(yīng)實(shí)體類型的枚舉值
  • responseText: 返回一個(gè)包含響應(yīng)文本(response as text)的DOMString柬赐,或者null;
  • responseXML: 返回一個(gè)包含響應(yīng)的Document官紫,或者null(請(qǐng)求未發(fā)送肛宋,響應(yīng)無(wú)法解析);
  • status: 返回響應(yīng)的狀態(tài)碼束世;
  • statusText: 返回響應(yīng)的狀態(tài)碼及服務(wù)器的反饋信息酝陈;
  • timeout: 定義請(qǐng)求在被終結(jié)前可以維持的最大時(shí)長(zhǎng),以毫秒為單位毁涉;
  • withCredentials: 一個(gè)布爾值沉帮,指示了Cross Site Access Control請(qǐng)求是否需要使用證書(shū)(如cookies,授權(quán)首部(authorization headers)或者TLS用戶證書(shū)等)贫堰;該值的設(shè)定對(duì)同域請(qǐng)求沒(méi)有影響穆壕;
  • In addition, this flag is also used to indicate when cookies are to be ignored in the response. The default is false. XMLHttpRequest from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request. The third-party cookies obtained by setting withCredentials to true will still honor same-origin policy and hence can not be accessed by the requesting script through document.cookie or from response headers.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市其屏,隨后出現(xiàn)的幾起案子喇勋,更是在濱河造成了極大的恐慌,老刑警劉巖偎行,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件川背,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蛤袒,警方通過(guò)查閱死者的電腦和手機(jī)熄云,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妙真,“玉大人皱碘,你說(shuō)我怎么就攤上這事∫酰” “怎么了癌椿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵健蕊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我踢俄,道長(zhǎng)缩功,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任都办,我火速辦了婚禮嫡锌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琳钉。我一直安慰自己势木,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布歌懒。 她就那樣靜靜地躺著啦桌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪及皂。 梳的紋絲不亂的頭發(fā)上甫男,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音验烧,去河邊找鬼板驳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碍拆,可吹牛的內(nèi)容都是我干的若治。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼感混,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼端幼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起浩习,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤静暂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后谱秽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體洽蛀,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年疟赊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了郊供。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡近哟,死狀恐怖驮审,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤疯淫,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布地来,位于F島的核電站,受9級(jí)特大地震影響熙掺,放射性物質(zhì)發(fā)生泄漏未斑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一币绩、第九天 我趴在偏房一處隱蔽的房頂上張望蜡秽。 院中可真熱鬧,春花似錦缆镣、人聲如沸芽突。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寞蚌。三九已至,卻和暖如春力细,著一層夾襖步出監(jiān)牢的瞬間睬澡,已是汗流浹背固额。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工眠蚂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斗躏。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓逝慧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親啄糙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笛臣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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