在jQuery中发送给.fail的参数是什么?


107

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

现在,我正在使用:

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

2
传递给error回调的可能相同:jqXHR, textStatus, errorThrown
Felix Kling 2012年

Answers:


93

根据http://api.jquery.com/jQuery.ajax/fail回调应为:

jqXHR, textStatus, errorThrown

与相同error,但error已弃用:

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


哦,我没注意到。感谢您分享那部分文档。我很高兴jQuery XHR回调终于与Deferreds相匹配。
Michael Mior 2012年

2
哦,但是ajaxError方法具有事件,jqXHR,ajaxSettings和thrownError。
菲利普·森

它们都是相同的回调,传递相同的参数,只是用途和上下文不同。
nathanjosiah 2012年

6
它在哪里声明失败回调获取这3个参数?对于完整的设置参数,也是如此。它们是不同的,例如to的参数complete不同于传递给的参数done
汤姆(Tom)

5
@Tom,我知道我要回复您已经很晚了,但在此声明:api.jquery.com/jQuery.ajax/#jqXHRjqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});
nathanjosiah 2014年

27

这是查找相同问题后的示例:

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是“错误”
  • 错误是“内部服务器错误”,它是服务器发送的错误消息。

1
是的,我认为他们想通过使用textStatus这个词来暗示的是,这是状态变量,并且是文本格式。与jqXHR相比,后者是一个jQuery对象。
菲利普·森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.