Pet*_*eGO 71 ajax jquery callback
我应该使用哪一个?
有没有理由使用一个而不是另一个?
错误处理更好吗?
$.ajax({
url: url,
data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
$('#myElement').append(data);
}).fail(function() {
// report error
});
Run Code Online (Sandbox Code Playgroud)
要么
$.ajax({
url: url,
data: { start: start, end: end },
success: function(data, textStatus, jqXHR) {
$('#myElement').append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// report error
}
});
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 40
这两个选项是等价的.
但是,promise样式接口(.fail()和.done())允许您将创建请求的代码与处理响应的代码分开.
您可以编写一个发送AJAX请求并返回jqXHR对象的函数,然后在其他地方调用该函数并添加一个处理程序.
当与.pipe()函数结合使用时,promise样式接口还可以在进行多个AJAX调用时帮助减少嵌套:
$.ajax(...)
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
});
Run Code Online (Sandbox Code Playgroud)
小智 29
只是为了清新这个......
从jQuery 1.8开始,成功和错误方法已被弃用.
弃用注意:自jQuery 1.8起,不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调.要准备最终删除的代码,请使用jqXHR.done(),jqXHR.fail()和jqXHR.always().
使用可链接的延迟对象承诺样式可以实现更清晰的结构并使用always。
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');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39349 次 |
| 最近记录: |