在JQuery帖子上调用事件

时间:2013-07-01 11:43:59

标签: javascript jquery ajax callback observer-pattern

我有一个完整的ajax应用程序。许多按钮和文本字段触发$.post方法。现在,我想要检查每个post's方法结果,如果此对象的success字段设置为false,我想执行some_method方法。最好的方法是什么?我不想在使用post方法的每个函数中执行此检查。是否有可能创建一些在每个post方法成功时触发的观察者?谢谢。

3 个答案:

答案 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,以防止触发全局处理程序。