我正在使用 $.ajax 发出发布请求。然后,我尝试在 ajax 请求成功或失败之前调用一个函数。现在我的方法如下
var someCallback = function() {
//do something
};
var Success = false;
$.ajax({
type: "POST",
url: "/some/service",
dataType: "text",
data: JSON.stringify(someData),
contentType: "application/json; charset=utf-8",
success: function (data) {
someCallBack(); //<--- this is the function
Success = true;//doesnt goes here
},
error: function (textStatus, errorThrown) {
someCallBack();
Success = false;//doesnt goes here
}
});
问题是,我需要在ajax请求完成之后运行someCallBack(),无论它是成功还是失败,但在调用成功或错误回调之前。我不想在这种情况下使用 ajaxStart 和 ajaxStop 。我查看了“完整”回调,但它仅在错误或成功后调用。我不想在两个地方调用 someCallBack() 。如有任何建议,请。
最佳答案
我认为您正在寻找 ajax' deferred接口(interface),其中有 always
method 。之后您可以链接您的成功/错误处理程序 - 尽管您不能使用那些进入选项对象的处理程序。
$.ajax({
type: "POST",
url: "/some/service",
dataType: "text",
data: JSON.stringify(someData),
contentType: "application/json; charset=utf-8"
})
.always(someCallBack)
.done(function (data) {
var Success = true; // goes here after someCallBack()
})
.fail(function (textStatus, errorThrown) {
var Success = false; // goes here after someCallBack()
});
关于javascript - ajax 成功或失败之前调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920920/