首先聲明,此文不是我原創(chuàng)戈次,感覺這篇文章比較好所以轉(zhuǎn)載過來便于學習和復習耸彪,原文章地址:前端開發(fā)的文章
status體現(xiàn)的是服務(wù)器對請求的反饋,而readystate表明客戶端與客戶的交互狀態(tài)過程栈雳。
1- AJAX狀態(tài)值與狀態(tài)碼區(qū)別
AJAX狀態(tài)值是指护奈,運行AJAX所經(jīng)歷過的幾種狀態(tài),無論訪問是否成功都將響應的步驟哥纫,可以理解成為AJAX運行步驟霉旗。如:正在發(fā)送,正在響應等蛀骇,由AJAX對象與服務(wù)器交互時所得厌秒;使用“ajax.readyState”獲得。(由數(shù)字0~4單位數(shù)字組成)
AJAX狀態(tài)碼是指擅憔,無論AJAX訪問是否成功鸵闪,由HTTP協(xié)議根據(jù)所提交的信息,服務(wù)器所返回的HTTP頭信息代碼暑诸,該信息使用“ajax.status”所獲得蚌讼;(由數(shù)字1XX,2XX三位數(shù)字組成,詳細查看RFC)
這就是我們在使用AJAX時為什么采用下面的方式判斷所獲得的信息是否正確的原因个榕。
if(ajax.readyState == 4 ) {
if((ajax.status>=200&&ajax.status<300)||ajax.status==304){
{ putData(ajax.responseText);}
}
}
2- AJAX運行步驟與狀態(tài)值說明
在AJAX實際運行當中篡石,對于訪問XMLHttpRequest(XHR)時并不是一次完成的,而是分別經(jīng)歷了多種狀態(tài)后取得的結(jié)果西采,對于這種狀態(tài)在AJAX中共有5種凰萨,分別是。
0 - (未初始化)還沒有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請求
2 - (載入完成)send()方法執(zhí)行完成胖眷,
3 - (交互)正在解析響應內(nèi)容
4 - (完成)響應內(nèi)容解析完成武通,可以在客戶端調(diào)用了
對于上面的狀態(tài),其中“0”狀態(tài)是在定義后自動具有的狀態(tài)值珊搀,而對于成功訪問的狀態(tài)(得到信息)我們大多數(shù)采用“4”進行判斷厅须。
3-AJAX狀態(tài)碼說明
狀態(tài)碼一般可以分為五類
200 OK 服務(wù)器成功處理了請求(這個是我們見到最多的)
301/302 Moved Permanently(重定向)請求的URL已移走。Response中應該包含一個Location URL, 說明資源現(xiàn)在所處的位置
304 Not Modified(未修改)客戶的緩存資源是最新的食棕, 要客戶端使用緩存
404 Not Found 未找到資源
501 Internal Server Error服務(wù)器遇到一個錯誤朗和,使其無法對請求提供服務(wù)
1XX開頭
1xx(臨時響應)表示臨時響應并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。代碼 說明
100 (繼續(xù)) 請求者應當繼續(xù)提出請求簿晓。 服務(wù)器返回此代碼表示已收到請求的第一部分眶拉,正在等待其余部分。
101 (切換協(xié)議) 請求者已要求服務(wù)器切換協(xié)議憔儿,服務(wù)器已確認并準備切換忆植。
2XX開頭
200 (成功) 服務(wù)器已成功處理了請求。 通常谒臼,這表示服務(wù)器提供了請求的網(wǎng)頁朝刊。
201 (已創(chuàng)建) 請求成功并且服務(wù)器創(chuàng)建了新的資源。
202 (已接受) 服務(wù)器已接受請求蜈缤,但尚未處理拾氓。
203 (非授權(quán)信息) 服務(wù)器已成功處理了請求,但返回的信息可能來自另一來源底哥。
204 (無內(nèi)容) 服務(wù)器成功處理了請求咙鞍,但沒有返回任何內(nèi)容。
205 (重置內(nèi)容) 服務(wù)器成功處理了請求趾徽,但沒有返回任何內(nèi)容续滋。
206 (部分內(nèi)容) 服務(wù)器成功處理了部分 GET 請求。
3XX開頭
300 (多種選擇) 針對請求孵奶,服務(wù)器可執(zhí)行多種操作疲酌。 服務(wù)器可根據(jù)請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇了袁。
301 (永久移動) 請求的網(wǎng)頁已永久移動到新位置朗恳。 服務(wù)器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉(zhuǎn)到新位置早像。
302 (臨時移動) 服務(wù)器目前從不同位置的網(wǎng)頁響應請求僻肖,但請求者應繼續(xù)使用原有位置來進行以后的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時卢鹦,服務(wù)器返回此代碼。
304 (未修改) 自從上次請求后,請求的網(wǎng)頁未修改過冀自。 服務(wù)器返回此響應時揉稚,不會返回網(wǎng)頁內(nèi)容。
305 (使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁熬粗。 如果服務(wù)器返回此響應搀玖,還表示請求者應使用代理。
307 (臨時重定向) 服務(wù)器目前從不同位置的網(wǎng)頁響應請求驻呐,但請求者應繼續(xù)使用原有位置來進行以后的請求灌诅。
4XX開頭
400 (錯誤請求) 服務(wù)器不理解請求的語法。
401 (未授權(quán)) 請求要求身份驗證含末。 對于需要登錄的網(wǎng)頁猜拾,服務(wù)器可能返回此響應。
403 (禁止) 服務(wù)器拒絕請求佣盒。
404 (未找到) 服務(wù)器找不到請求的網(wǎng)頁挎袜。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內(nèi)容特性響應請求的網(wǎng)頁肥惭。
407 (需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似盯仪,但指定請求者應當授權(quán)使用代理。
408 (請求超時) 服務(wù)器等候請求時發(fā)生超時蜜葱。
409 (沖突) 服務(wù)器在完成請求時發(fā)生沖突全景。 服務(wù)器必須在響應中包含有關(guān)沖突的信息。
410 (已刪除) 如果請求的資源已永久刪除牵囤,服務(wù)器就會返回此響應蚪燕。
411 (需要有效長度) 服務(wù)器不接受不含有效內(nèi)容長度標頭字段的請求。
412 (未滿足前提條件) 服務(wù)器未滿足請求者在請求中設(shè)置的其中一個前提條件奔浅。
413 (請求實體過大) 服務(wù)器無法處理請求馆纳,因為請求實體過大,超出服務(wù)器的處理能力汹桦。
414 (請求的 URI 過長) 請求的 URI(通常為網(wǎng)址)過長鲁驶,服務(wù)器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持舞骆。
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍钥弯,則服務(wù)器會返回此狀態(tài)代碼。
417 (未滿足期望值) 服務(wù)器未滿足”期望”請求標頭字段的要求督禽。
5XX開頭
500 (服務(wù)器內(nèi)部錯誤) 服務(wù)器遇到錯誤脆霎,無法完成請求。
501 (尚未實施) 服務(wù)器不具備完成請求的功能狈惫。 例如睛蛛,服務(wù)器無法識別請求方法時可能會返回此代碼。
502 (錯誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應忆肾。
503 (服務(wù)不可用) 服務(wù)器目前無法使用(由于超載或停機維護)荸频。 通常,這只是暫時狀態(tài)客冈。
504 (網(wǎng)關(guān)超時) 服務(wù)器作為網(wǎng)關(guān)或代理旭从,但是沒有及時從上游服務(wù)器收到請求。
505 (HTTP 版本不受支持) 服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本场仲。
第三部分轉(zhuǎn)載自你應該需要了解到的 【HTTP狀態(tài)碼 】