《鋒利的jQuery》八、XMLHttpRequest對(duì)象


title: 《鋒利的jQuery》八、XMLHttpRequest對(duì)象
date: 2017-08-15 21:35:00
tags: 鋒利的jQuery


XMLHttpRequest對(duì)象是Ajax的核心,它有許多的屬性、方法和事件以便于js處理和控制HTTP的請(qǐng)求與響應(yīng)。

readyState屬性

當(dāng)一個(gè)XMLHttpRequest被創(chuàng)建后,通過(guò)readyState屬性可以查看此次請(qǐng)求的狀態(tài)。

說(shuō)明
0 初始化狀態(tài):此時(shí),已經(jīng)創(chuàng)建了一個(gè)XMLHttpRequest對(duì)象,但是沒(méi)有初始化。
1 準(zhǔn)備發(fā)送狀態(tài):已經(jīng)調(diào)用了open()方法,并且XMLHttpRequest對(duì)象已經(jīng)準(zhǔn)備好將一個(gè)請(qǐng)求發(fā)送到服務(wù)器。
2 已發(fā)送狀態(tài):已經(jīng)通過(guò)send()方法把一個(gè)請(qǐng)求發(fā)送到服務(wù)器端。
3 正在接受狀態(tài):已經(jīng)接到HTTP的響應(yīng)頭部信息,但是消息體部分還沒(méi)有完全接收到。
4 完成響應(yīng)狀態(tài):已經(jīng)完成了HttpResponse響應(yīng)的接收。

responseText屬性

包含客戶(hù)端接收到的HTTP響應(yīng)的文本內(nèi)容。readyState為0、1、2時(shí)是一個(gè)空字符串,readyState為3時(shí)響應(yīng)中包含客戶(hù)端還未完成的響應(yīng)信息,readyState為4時(shí)才是完整的信息。

responseXML屬性

只有當(dāng)readyState為4時(shí),并且響應(yīng)頭部的Content-Type的MIME類(lèi)型被指定為XML(text/xml)時(shí),該屬性才會(huì)有值并且被解析為一個(gè)XML文檔。

status屬性

描述了HTTP的狀態(tài)碼,只有在readyState為3或者4時(shí)才可以使用該屬性,否則會(huì)報(bào)錯(cuò)。

statusText屬性

和上面相同,只是描述了HTTP的狀態(tài)碼文本,而不只是狀態(tài)碼。

open()方法

XMLHttpRequest對(duì)象是通過(guò)調(diào)用open()方法來(lái)進(jìn)行初始化工作的。調(diào)用該方法將得到一個(gè)可以用來(lái)進(jìn)行發(fā)送的對(duì)象。

該方法有五個(gè)參數(shù) open(method,uri,async,username,password)。

  1. method:該參數(shù)是必須提供的,用于確定GET發(fā)送還是POST發(fā)送,該參數(shù)要大寫(xiě)。

  2. uri:用于指定XMLHttpRequest對(duì)象把請(qǐng)求發(fā)送到的服務(wù)器相應(yīng)的URI。

  3. async:用于指定是否請(qǐng)求是異步的,默認(rèn)值是true,發(fā)送同步請(qǐng)求需要設(shè)置為false

  4. 如果服務(wù)器要驗(yàn)證訪問(wèn)用戶(hù)的情況,那么可以設(shè)置usernamepassword

send()

調(diào)用send()方法可以將open()方法設(shè)定的參數(shù)請(qǐng)求進(jìn)行發(fā)送。send()方法在readyState屬性值為1時(shí),即是在open()之后才可以調(diào)用。

send()的參數(shù)可以作為POST方式發(fā)送的參數(shù),在調(diào)用send()之前,先使用setRequestHeader()方法設(shè)置Content-Type的頭部。

abort()方法

該方法可以暫停一個(gè)HttpRequest的請(qǐng)求發(fā)送或者HttpResponse的接收,并將XMLHttpRequest設(shè)置為初始化狀態(tài)。

setRequestHeader()方法

用來(lái)設(shè)置頭部信息,當(dāng)readyState屬性值為1時(shí),可以在調(diào)用open()方法后調(diào)用這個(gè)方法,該方法的格式為:setRequestHeader(header, value)。

getRequestHeader()方法

檢索響應(yīng)的頭部值,僅當(dāng)readyState值為3或者4時(shí)才可以調(diào)用這個(gè)方法,否則會(huì)返回一個(gè)空字符串。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容