2011-12-02 116 views
4

我正在开发一些执行一些Ajax操作的项目。现在ajax调用是通过脚本完成的,我不想进入这些脚本。使用jQuery监听Ajax POST响应

此外,被发回的响应是很随机的,不是那么容易抓牢。他们没有一个坚实的阶级,我可以寻找。

对我来说,最好的办法是,每当一个柱通过页面上的任何函数返回的,我的功能之一是解雇。请注意,我不知道从哪里拨打电话,我对此不感兴趣。我唯一想知道的是如果有收到的帖子。我也是对实际的帖子响应数据不感兴趣。只要页面收到来自页面发出的POST的一些响应,就要触发一个函数。

是类似的东西可能。

回答

8

看看.ajaxSetup()。它允许您添加代码,这些代码是针对从您的JS代码中的任何位置触发的任何AJAX事件执行的。

在其上运行success:事件的东西,这将这样的伎俩:

$.ajaxSetup({ 
    success: function() { 
     // Your code 
    } 
}); 

捕捉任何AJAX事件,失败与否,使用此:

$.ajaxSetup({ 
    ajaxComplete: function() { 
     // Your code 
    } 
}); 
+0

我还没有看到这个,这看起来像我可以使用的东西。我会检查一下,我很好奇脚本被解雇的顺序,我会解决这个问题。谢谢。 –

+0

它完美的作品。谢谢! –

+0

注:全局回调函数应与各自的全局AJAX事件处理方法进行设置 - [.ajaxStart()](http://api.jquery.com/ajaxStart/),[.ajaxStop()](HTTP:// api.jquery.com/ajaxStop/),[.ajaxComplete()](http://api.jquery.com/ajaxComplete/),[.ajaxError()](http://api.jquery.com/ajaxError/ ),[.ajaxSuccess()](http://api.jquery.com/ajaxSuccess/),[.ajaxSend()](http://api.jquery.com/ajaxSend/) - 而不是在'options ''.ajaxSetup()'的对象。 – AlecRust

0

另一个变化,以Bojangles答案是你可以传递这样的附加参数,这样你就可以更好地控制请求。

因为这个代码将在每一个请求上运行,所以如果你想要触发点击功能,你可能不希望现在再触发它的每一个为每个请求。所以你会将你的点击代码包装在一些有条件的IF语句中。

$(document).ajaxComplete(function(event,request, settings){ 
    // Your code here 
});