首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调用jquery ajax - .fail vs. :error

调用jquery ajax - .fail vs. :error
EN

Stack Overflow用户
提问于 2012-11-01 06:49:46
回答 2查看 44.6K关注 0票数 79

我应该使用哪一个?

有没有理由使用其中一个而不是另一个?

有没有更好的错误处理方法?

代码语言:javascript
复制
$.ajax({
    url: url,
    data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
    $('#myElement').append(data);
}).fail(function() {
    // report error    
});

代码语言:javascript
复制
$.ajax({
    url: url,
    data: { start: start, end: end },
    success: function(data, textStatus, jqXHR) {
        $('#myElement').append(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        // report error
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 06:51:27

这两个选项是等效的。

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

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

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

代码语言:javascript
复制
$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });
票数 44
EN

Stack Overflow用户

发布于 2018-04-01 21:56:36

使用chainable deferred object promise样式可以使结构更整洁,并可以使用always

代码语言:javascript
复制
let data = {"key":"value"}

$.ajax({
    type: 'PUT',
    url: 'http://example.com/api',
    contentType: 'application/json',
    data: JSON.stringify(data), 
}).done(function () {
    console.log('SUCCESS');
}).fail(function (msg) {
    console.log('FAIL');
}).always(function (msg) {
    console.log('ALWAYS');
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13168572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档