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