几个选项供您选择:
在成功或失败时调用相同的函数。函数不必是匿名的和内联定义的,您可以使用名称单独定义它们并相应地引用它们。
在您的代码段中,您同时使用了旧的success
(尽管最后有一个额外s
的)和error
新的done
,这意味着您定义了两个不同的成功回调(success
和done
)。一个就足够了。
这是一个使用success
and的示例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");
}
或使用done
and 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
回调(在done
andfail
样式中),无论成功或失败(在成功或失败回调完成后)都会调用它们:
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");
}