调用jQueryAjax- .Fail和Error应该用哪个

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (265)

我该用哪一个?

是否有任何理由使用其中一种而不是另一种?

一个更适合错误处理吗?

$.ajax({
    url: url,
    data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
    $('#myElement').append(data);
}).fail(function() {
    // report error    
});

$.ajax({
    url: url,
    data: { start: start, end: end },
    success: function(data, textStatus, jqXHR) {
        $('#myElement').append(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        // report error
    }
});
提问于
用户回答回答于

这两种选择是等价的。

但是,承诺式接口(.fail().done())允许你将创建请求的代码与处理响应的代码分开。

你可以编写一个函数来发送Ajax请求并返回jqXHR对象,然后在其他地方调用该函数并添加一个处理程序。

当与.pipe()函数时,允诺样式的接口还可以帮助减少多次Ajax调用时的嵌套:

$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });
用户回答回答于

从jQuery 1.8开始,success 和 error方法已经被弃用了。

jQuery的Ajax

弃用通知:自jQuery 1.8起,弃用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。要准备好代码以便最终删除它们,请改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

扫码关注云+社区

领取腾讯云代金券