0

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

4

3 回答 3

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);
});
于 2013-07-01T11:48:07.527 回答
0

使用ajaxSuccess()全局事件处理程序

附加一个在 Ajax 请求成功完成时执行的函数

前任:

$('body').ajaxSuccess(function(e, xhr, options) {
    if (xhr.responseText 
        && options.dataType == "json") {
        var json = JSON.parse(xhr.responseText );
        //custom
    }
});
于 2013-07-01T11:45:37.113 回答
0

您将不得不使用ajaxSuccess全局事件处理程序并添加一些逻辑来防止执行这两个回调:

$(document).ajaxSuccess(function(event, xhr, settings) {
  if ( !settings.success ) {
    //The ajax request does not have a success callback
  }
});

或者您必须更改每个 post 调用以将参数设置globalfalse以防止触发全局处理程序。

于 2013-07-01T11:54:45.023 回答