小编典典

调用jquery ajax-.fail vs.:error

ajax

我应该使用哪一个?

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

错误处理更好吗?

$.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
    }
});

阅读 413

收藏
2020-07-26

共1个答案

小编典典

这两个选项是等效的。

但是,promise风格的接口(.fail().done())使您可以将创建请求的代码与处理响应的代码分开。

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

当与该.pipe()功能结合使用时,promise风格的接口还可以在进行多个AJAX调用时帮助减少嵌套:

$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });
2020-07-26