jquery - 调用 jquery ajax - .fail 与 :error

标签 jquery ajax callback

我应该使用哪一个?

有什么理由使用一个而不是另一个吗?

是否有更好的错误处理方式?

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

最佳答案

这两个选项是等价的。

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

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

当与 .pipe() 函数结合使用时,promise 风格的界面还有助于减少进行多个 AJAX 调用时的嵌套:

$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });

关于jquery - 调用 jquery ajax - .fail 与 :error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168572/

相关文章:

javascript - 挑战: Fix a Canvas plugin to work with CORS?

javascript - 使用纯 javascript 更改第一行 tds 宽度

javascript - 使用 jquery 操作 json 数据

javascript - 当异步递归方法完全准备好时如何创建回调

javascript - 高库存 : How to define the span colors of a line instead of the individual line color

javascript - JS 中如何处理 NaN?

Jquery 模态表单与 Struts 1.3

javascript - 将单列转换为多列

c#-4.0 - Windows 8 - 等待任务 <Bool> - 需要完成监听器的异步回调

javascript - 回调中的变量有时为空