javascript – 如何设置$.ajaxStart()和$.ajaxStop()仅在POST请求时触发?

我想为ajax请求设置全局处理程序,但仅限于POST情况.

不幸的是,全局处理程序$.ajaxStart()和$.ajaxStop()将触发所有请求,据我所知,没有参数传递给处理函数.文档也很稀缺,因为大多数jQuery文档都是.

我可以在全局ajax处理程序中检测请求类型吗?

最佳答案
您必须使用这些事件:ajaxSend() ajaxComplete()

$(document).ajaxSend(function (event,xhr,options) {
    if (options.type.toUpperCase() === "POST") console.log('POST request');;
}).ajaxComplete(function (event,options) {
    if (options.type.toUpperCase() === "POST") console.log('POST request');
});

使用ajaxSend,您仍然可以使用以下命令中止请求:xhr.abort()

编辑:

最好是在@ DemoUser的答案中使用jQuery.ajaxPrefilter

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...