1. 程式人生 > >Ajax狀態值與狀態碼

Ajax狀態值與狀態碼

一、常見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版本