几个选项供您选择:
在成功或失败时调用相同的函数。函数不必是匿名的和内联定义的,您可以使用名称单独定义它们并相应地引用它们。
在您的代码段中,您同时使用了旧的success(尽管最后有一个额外s的)和error 新的done,这意味着您定义了两个不同的成功回调(success和done)。一个就足够了。
这是一个使用successand的示例error,传递null给 on 处理程序error:
var ajax = undefined;
$.ajax({
type: 'put',
url: url,
data: data,
cache: false,
success: handler,
error: function() {
handler(null);
}
});
function handler() {
alert("Done");
}
或使用doneand fail:
var ajax = undefined;
$.ajax({
type: 'put',
url: url,
data: data,
cache: false
}).done(handler).fail(function() {
handler(null);
});
function handler() {
alert("Done");
}
或者(或组合),有complete回调(您在选项中指定的那个)和always回调(在doneandfail样式中),无论成功或失败(在成功或失败回调完成后)都会调用它们:
complete:
var ajax = undefined;
$.ajax({
type: 'put',
url: url,
data: data,
cache: false,
success: handler,
error: function() {
handler(null);
},
complete: function() {
alert("Always called (after success/error)");
}
});
function handler() {
alert("Done");
}
always:
var ajax = undefined;
$.ajax({
type: 'put',
url: url,
data: data,
cache: false
}).done(handler).fail(function() {
handler(null);
}).always(function() {
alert("Always called (after done/fail)");
});
function handler() {
alert("Done");
}