首页 > 解决方案 > jQuery 中 AJAX POST 请求的全局事件处理程序

问题描述

我想为 jQuery.post(...) 完成的所有 POST 请求注册一个事件处理程序。

我可以为所有 ajax 请求安装一个全局处理程序:

$( document ).ajaxComplete(function(ev,xhr) {
  console.log(xhr);
});

但我想让处理程序只为 POST 请求调用。但我想不通:

$( document ).ajaxComplete(function(ev,xhr) {
  if(xhr.__IS_POST_OR_WHATEVER()) {
     console.log(xhr);
  }
});

标签: jqueryajax

解决方案


还有一个额外的参数传递给ajaxComplete事件处理程序;包含发出请求的设置的对象。该对象具有type您需要检查的属性:

$(document).ajaxComplete(function(ev, xhr, settings) {
  if (settings.type === 'POST') {
    console.log('Do something');
  }
});

文档中提供了更多信息。


推荐阅读