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