我想为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