jqXHR.fail()回调方法及其参数详细说明

为了让客户端提供错误日志,小弟使用了jqXHR.fail()去收集接口的错误信息,方便开发快速定位问题。

jqXHR.fail()是一个可供选择的 error 回调选项的构造函数,.fail()方法取代了的过时的.error()方法。从 jQuery 1.5 开始,$.ajax()返回的jqXHR对象 实现了 Promise 接口, 使它拥有了 Promise 的所有属性,方法和行为。为了让回调函数的名字统一,便于在$.ajax()中使用。jqXHR也提供.error() .success().complete()方法。

首先来看看语法。

过时的方法:

$.ajax({
...
error:function(jqXHR, textStatus, errorThrown) {},
...
})

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/

赞(0) 打赏
未经允许不得转载:WEB前端开发 » jqXHR.fail()回调方法及其参数详细说明

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏