responseText 獲得字符串形式的響應(yīng)數(shù)據(jù)。 responseXML 獲得XML 形式的響應(yīng)數(shù)據(jù)。
同步處理
異步處理(推薦)
相對(duì)來(lái)說(shuō)比較復(fù)雜,要在請(qǐng)求狀態(tài)改變事件中處理。
什么是readyState?
readyState是XMLHttpRequest對(duì)象的一個(gè)屬性,用來(lái)標(biāo)識(shí)當(dāng)前XMLHttpRequest對(duì)象處于什么狀態(tài)。
readyState總共有5個(gè)狀態(tài)值,分別為0~4,每個(gè)值代表了不同的含義:
0:未初始化 — 尚未調(diào)用.open()方法;1:?jiǎn)?dòng) — 已經(jīng)調(diào)用.open()方法,但尚未調(diào)用.send()方法;2:發(fā)送 — 已經(jīng)調(diào)用.send()方法,但尚未接收到響應(yīng);3:接收 — 已經(jīng)接收到部分響應(yīng)數(shù)據(jù);4:完成 — 已經(jīng)接收到全部響應(yīng)數(shù)據(jù),而且已經(jīng)可以在客戶端使用了;
什么是status?
HTTP狀態(tài)碼(status)由三個(gè)十進(jìn)制數(shù)字組成,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類(lèi)型,后兩個(gè)數(shù)字沒(méi)有分類(lèi)的作用。HTTP狀態(tài)碼共分為5種類(lèi)型:
1xx(臨時(shí)響應(yīng)):表示臨時(shí)響應(yīng)并需要請(qǐng)求者繼續(xù)執(zhí)行操作的狀態(tài)碼。2xx(成功):表示成功處理了請(qǐng)求的狀態(tài)碼。3xx(重定向):表示要完成請(qǐng)求,需要進(jìn)一步操作。通常,這些狀態(tài)代碼用來(lái)重定向。4xx(請(qǐng)求錯(cuò)誤):這些狀態(tài)碼表示請(qǐng)求可能出錯(cuò),妨礙了服務(wù)器的處理。5xx(服務(wù)器錯(cuò)誤):這些狀態(tài)碼表示服務(wù)器在嘗試處理請(qǐng)求時(shí)發(fā)生內(nèi)部錯(cuò)誤。這些錯(cuò)誤可能是服務(wù)器本身的錯(cuò)誤,而不是請(qǐng)求出錯(cuò)。
常見(jiàn)的狀態(tài)碼
僅記錄在 RFC2616 上的 HTTP 狀態(tài)碼就達(dá) 40 種,若再加上 WebDAV(RFC4918、5842)和附加 HTTP 狀態(tài)碼 (RFC6585)等擴(kuò)展,數(shù)量就達(dá) 60 余種。接下來(lái),我們就介紹一下這些具有代表性的一些狀態(tài)碼。
200 表示從客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器端被正常處理了。204 表示請(qǐng)求處理成功,但沒(méi)有資源返回。301 表示永久性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的URI,以后應(yīng)使用資源現(xiàn)在所指的URI。302 表示臨時(shí)性重定向。304 表示客戶端發(fā)送附帶條件的請(qǐng)求時(shí)(指采用GET方法的請(qǐng)求報(bào)文中包含if-matched,if-modified-since,if-none-match,if-range,if-unmodified-since任一個(gè)首部)服務(wù)器端允許請(qǐng)求訪問(wèn)資源,但因發(fā)生請(qǐng)求未滿足條件的情況后,直接返回304Modified(服務(wù)器端資源未改變,可直接使用客戶端未過(guò)期的緩存)400 表示請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤。當(dāng)錯(cuò)誤發(fā)生時(shí),需修改請(qǐng)求的內(nèi)容后再次發(fā)送請(qǐng)求。401 表示未授權(quán)(Unauthorized),當(dāng)前請(qǐng)求需要用戶驗(yàn)證403 表示對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了404 表示服務(wù)器上無(wú)法找到請(qǐng)求的資源。除此之外,也可以在服務(wù)器端拒絕請(qǐng)求且不想說(shuō)明理由時(shí)使用。500 表示服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。也有可能是Web應(yīng)用存在的bug或某些臨時(shí)的故障。503 表示服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無(wú)法處理請(qǐng)求。