鍍金池/ 問答/HTML/ ajax請求出錯時怎么拿到錯誤碼

ajax請求出錯時怎么拿到錯誤碼

比如404 500啊這些

回答
編輯回答
怣人

可以舉一下jquery的ajax例子,你瞅瞅~

$(document).ready(function() {
  jQuery("#clearCac").click(function() {
     jQuery.ajax({
       url: url,
       type: "post",
       data: { id: '0' },
       dataType: "json",
       success: function(msg) {
         alert(msg);
       },
       error: function(XMLHttpRequest, textStatus, errorThrown) {
         alert(XMLHttpRequest.status);
         alert(XMLHttpRequest.readyState);
         alert(textStatus);
       },
       complete: function(XMLHttpRequest, textStatus) {
         this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)
       }
     });
  });
});

當通過ajax異步調(diào)用成功時,會調(diào)用 success函數(shù) 。success函數(shù)語法為:

//請求成功后回調(diào)函數(shù)。這個方法有兩個參數(shù):服務器返回數(shù)據(jù),返回狀態(tài)
function (data, textStatus){
     // data could be xmlDoc, jsonObj, html, text, etc...   
     this;
    // the options for this ajax request
}

當通過ajax異步調(diào)用出錯時,會調(diào)用 error函數(shù) 。error函數(shù)語法為:

//(默 認: 自動判斷 (xml 或 html)) 請求失敗時調(diào)用時間。
//參數(shù)有以下三個:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的錯誤對象。
//如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到null之外,
//還可能是"timeout", "error", "notmodified" 和 "parsererror"。
  
//textStatus: "timeout", "error", "notmodified" 和 "parsererror"。
 
error:function (XMLHttpRequest, textStatus, errorThrown) 
{ 
  
} 

error事件返回的第一個參數(shù)XMLHttpRequest:
XMLHttpRequest.readyState: 狀態(tài)碼的意思
0 - (未初始化)還沒有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請求
2 - (載入完成)send()方法執(zhí)行完成,已經(jīng)接收到全部響應內(nèi)容
3 - (交互)正在解析響應內(nèi)容
4 - (完成)響應內(nèi)容解析完成,可以在客戶端調(diào)用了

XMLHttpRequest.status代表當前http請求的狀態(tài),如200,404,500等

2017年7月16日 14:46
編輯回答
吃藕丑

獲取xhr對象的status屬性,就是狀態(tài)碼

2018年2月8日 21:19