我有一个完整的ajax应用程序。许多按钮和文本字段触发$.post
方法。现在,我想要检查每个post's
方法结果,如果此对象的success
字段设置为false,我想执行some_method
方法。最好的方法是什么?我不想在使用post
方法的每个函数中执行此检查。是否有可能创建一些在每个post
方法成功时触发的观察者?谢谢。
答案 0 :(得分:0)
使用ajaxSuccess()全局事件处理程序
在Ajax请求完成时附加要执行的函数 成功
例如:
$('body').ajaxSuccess(function(e, xhr, options) {
if (xhr.responseText
&& options.dataType == "json") {
var json = JSON.parse(xhr.responseText );
//custom
}
});
答案 1 :(得分:0)
您可以使用:
$(document).ajaxSuccess(function(event, request, settings) {
if (settings.type == "POST") {
console.log("Post success :D");
}
});
$.post(url, function(data) {
console.log("Success return: " + data);
}).fail(function(e) {
console.log("Error: " + e.message);
});
答案 2 :(得分:0)
您必须使用ajaxSuccess全局事件处理程序并添加一些逻辑以防止执行两个回调:
$(document).ajaxSuccess(function(event, xhr, settings) {
if ( !settings.success ) {
//The ajax request does not have a success callback
}
});
或者您必须更改每个帖子调用以将参数global
设置为false
,以防止触发全局处理程序。