jqXHR.fail()回調方法及其參數詳細說明


jqXHR.fail()是一個可供選擇的 error 回調選項的構造函數,.fail()方法取代了的過時的.error()方法。從 jQuery 1.5 開始,$.ajax()返回的jqXHR對象 實現了 Promise 接口, 使它擁有了 Promise 的所有屬性,方法和行為。為了讓回調函數的名字統一,便於在$.ajax()中使用。jqXHR也提供.error() .success().complete()方法。

首先來看看語法。

過時的方法:

 
        

Promise實現:

jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});

 

這里對這三個參數做詳細說明。

第一個參數 jqXHR(jqXHR對象):這里的jqXHR是一個jqXHR對象,在jQuery1.4和1.4版本之前返回的是XMLHttpRequest對象,1.5版本以后則開始使用jqXHR對象,該對象是一個超集,就是該對象不僅包括XMLHttpRequest對象,還包含其他更多的詳細屬性和信息。

這里主要有4個屬性:

  • readyState :當前狀態,0-未初始化,1-正在載入,2-已經載入,3-數據進行交互,4-完成。
  • status ?:返回的HTTP狀態碼,比如常見的404,500等錯誤代碼。
  • statusText :對應狀態碼的錯誤信息,比如404錯誤信息是not found,500是Internal Server Error。
  • responseText :服務器響應返回的文本信息

第二個參數 textStatus(String?字符串):返回的是字符串類型,表示返回的狀態,根據服務器不同的錯誤可能返回下面這些信息:

  • “timeout”(超時)
  • ?”error”(錯誤)
  • “abort”(中止)
  • “parsererror”(解析錯誤)
  • 或者返回空值

第三個參數 errorThrown(String?字符串):也是字符串類型,表示服務器拋出返回的錯誤信息,如果產生的是HTTP錯誤,那么返回的信息就是HTTP狀態碼對應的錯誤信息,比如404的Not Found,500錯誤的Internal Server Error。

示例代碼:

var _ajax = $.ajax({
    url: '/AJAX請求的URL',
    data: {}
});
_ajax.done(function (data, textStatus, jqXHR) {
    //success
});
_ajax.fail(function (jqXHR, textStatus, errorThrown) {
    /*打印jqXHR對象的信息*/
    console.log(jqXHR.responseText); //必要的時候編碼一下:encodeURIComponent(jqXHR.responseText);
    console.log(jqXHR.status);
    console.log(jqXHR.readyState);
    console.log(jqXHR.statusText);
    /*打印其他兩個參數的信息*/
    console.log(textStatus);
    console.log(errorThrown);
});

 

更多詳細信息請查看jQuery API 文檔:https://www.html.cn/jqapi-1.9/jQuery.ajax/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM