我应该使用哪一个?
有什么理由使用一个而不是另一个吗?
是否有更好的错误处理方式?
$.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/