【问题标题】:What are the parameters sent to .fail in jQuery?jQuery 中发送给 .fail 的参数是什么?
【发布时间】:2012-03-23 22:23:43
【问题描述】:

我找不到关于$.ajax 失败时三个参数的名称的文档。

现在,我只是在使用:

.fail(function(A, B, C) {

【问题讨论】:

  • 可能与传递给error 回调的相同:jqXHR, textStatus, errorThrown

标签: jquery ajax


【解决方案1】:

根据http://api.jquery.com/jQuery.ajax/ fail 回调应该得到:

jqXHR, textStatus, errorThrown

error 相同,但不推荐使用error

弃用通知:jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调将在 jQuery 1.8 中弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

【讨论】:

  • 哦,我没注意到。感谢您分享那段文档。我很高兴 jQuery XHR 回调终于与 Deferreds 匹配。
  • 哦,不过ajaxError方法有事件,jqXHR,ajaxSettings,throwError。
  • 它们都是相同的回调,传递相同的参数,只是不同的用途和上下文。
  • 它在哪里声明失败回调获取这 3 个参数?对于完整的设置参数,它也说明了这一点。这些是不同的,例如complete 的参数与传递给 done 的参数不同。
  • @Tom,我知道我回复你的时间太晚了,但在这里说明:api.jquery.com/jQuery.ajax/#jqXHR (jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
【解决方案2】:

找同样问题后的例子:

this.GetOrderList = function (customerId) {
    var self = this;
    $.post('MySuperServer.aspx', { customerId: customerId })
    .done(function (dataStr) {
        var orderList = jQuery.parseJSON(dataStr);
        self.process(orderList);
    })
    .fail(function (jqXHR, textStatus, error) {
        console.log("Post error: " + error);
    });
}

在调试时,我得到了:

  • jqXHR 是一个 JS 对象
  • textStatus 是“错误”
  • error 是“Internal Server Error”,是服务器发送的错误信息。

【讨论】:

  • 是的,我认为他们试图通过使用 textStatus 这个词来暗示这是状态变量并且它是文本格式的。与 jqXHR 相比,jqXHR 是一个 jQuery 对象。
猜你喜欢
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多