Ajax狀態值與狀態碼
阿新 • • 發佈:2018-11-11
一、常見Ajax錯誤分析
問題:
0: (Uninitialized) the send( ) method has not yet been invoked.
1: (Loading) the send( ) method has been invoked, request in progress.
2: (Loaded) the send( ) method has completed, entire response received.
3: (Interactive) the response is being parsed.
4: (Completed) the response has been parsed, is ready for harvesting.
解析:
0 - (未初始化)還沒有呼叫send()方法
1 - (載入)已呼叫send()方法,正在傳送請求
2 - (載入完成)send()方法執行完成,已經接收到全部響應內容
3 - (互動)正在解析響應內容
4 - (完成)響應內容解析完成,可以在客戶端呼叫了
二、Ajax狀態值與狀態碼區別
1、AJAX狀態值是指,執行Ajax所經歷過的幾種狀態,無論訪問是否成功都將響應的步驟,可以理解成為AJAX執行步驟。如:正在傳送,正在響應等,由AJAX物件與伺服器互動時所得;使用“ajax.readyState”獲得。(由數字1~4單位數字組成)
2、AJAX狀態碼是指,無論AJAX訪問是否成功,由HTTP協議根據所提交的資訊,伺服器所返回的HTTP頭資訊程式碼,該資訊使用“ajax.status”所獲得;(由數字1XX,2XX三位數字組成,詳細檢視RFC)
# AJAX判斷所獲得的資訊是否正確
if(ajax.readyState == 4 && ajax.status == 200) { putData(ajax.responseText);}
三、Ajax執行步驟與狀態值說明
在AJAX實際運行當中,對於訪問XMLHttpRequest(XHR)時並不是一次完成的,而是分別經歷了多種狀態後取得的結果,對於這種狀態在AJAX中共有5種,分別是:
0 - (未初始化)還沒有呼叫send()方法
1 - (載入)已呼叫send()方法,正在傳送請求
2 - (載入完成)send()方法執行完成,
3 - (互動)正在解析響應內容
4 - (完成)響應內容解析完成,可以在客戶端呼叫了
對於上面的狀態,其中“0”狀態是在定義後自動具有的狀態值,而對於成功訪問的狀態(得到資訊)我們大多數採用“4”進行判斷
四、Ajax狀態碼說明
狀態碼 | 說明 |
---|---|
1** | 請求收到,繼續處理 |
2** | 操作成功收到,分析、接受 |
3** | 完成此請求必須進一步處理 |
4** | 請求包含一個錯誤語法或不能完成 |
5** | 伺服器執行一個完全有效請求失敗 |
100 | 客戶必須繼續發出請求 |
101 | 客戶要求伺服器根據請求轉換HTTP協議版本 |
200 | 交易成功 |
201 | 提示知道新檔案的URL |
202 | 接受和處理、但處理未完成 |
203 | 返回資訊不確定或不完整 |
204 | 請求收到,但返回資訊為空 |
205 | 伺服器完成了請求,使用者代理必須復位當前已經瀏覽過的檔案 |
206 | 伺服器已經完成了部分使用者的GET請求 |
300 | 請求的資源可在多處得到 |
301 | 刪除請求資料 |
302 | 在其他地址發現了請求資料 |
303 | 建議客戶訪問其他URL或訪問方式 |
304 | 客戶端已經執行了GET,但檔案未變化 |
305 | 請求的資源必須從伺服器指定的地址得到 |
306 | 前一版本HTTP中使用的程式碼,現行版本中不再使用 |
307 | 申明請求的資源臨時性刪除 |
400 | 錯誤請求,如語法錯誤 |
401 | 請求授權失敗 |
402 | 保留有效ChargeTo頭響應 |
403 | 請求不允許 |
404 | 沒有發現檔案、查詢或URl |
405 | 使用者在Request-Line欄位定義的方法不允許 |
406 | 根據使用者傳送的Accept拖,請求資源不可訪問 |
407 | 類似401,使用者必須首先在代理伺服器上得到授權 |
408 | 客戶端沒有在使用者指定的餓時間內完成請求 |
409 | 對當前資源狀態,請求不能完成 |
410 | 伺服器上不再有此資源且無進一步的參考地址 |
411 | 伺服器拒絕使用者定義的Content-Length屬性請求 |
412 | 一個或多個請求頭欄位在當前請求中錯誤 |
413 | 請求的資源大於伺服器允許的大小 |
414 | 請求的資源URL長於伺服器允許的長度 |
415 | 請求資源不支援請求專案格式 |
416 | 請求中包含Range請求頭欄位,在當前請求資源範圍內沒有range指示值,請求也不包含If-Range請求頭欄位 |
417 | 伺服器不滿足請求Expect頭欄位指定的期望值,如果是代理伺服器,可能是下一級伺服器不能滿足請求 |
500 | 伺服器產生內部錯誤 |
501 | 伺服器不支援請求的函式 |
502 | 伺服器暫時不可用,有時是為了防止發生系統過載 |
503 | 伺服器過載或暫停維修,宕機 |
504 | 關口過載,伺服器使用另一個關口或服務來響應使用者,等待時間設定值較長 |
505 | 伺服器不支援或拒絕支請求頭中指定的HTTP版本 |