我想为ajax请求设置全局处理程序,但仅适用于POST
个案例。
不幸的是,全局处理程序$.ajaxStart()
和$.ajaxStop()
将为所有请求触发,据我所知,没有参数传递给处理函数。文档也很稀缺,因为大多数jQuery文档都是。
我可以在全局ajax处理程序中检测请求类型吗?
答案 0 :(得分:5)
我猜你可以这样做:
jQuery.ajaxPrefilter(function( options) {
if(options.type !== 'POST') {
options.global = false;
}
});
请参阅:: jQuery prefilters
答案 1 :(得分:5)
您必须改为使用这些活动:ajaxSend() ajaxComplete()
$(document).ajaxSend(function (event, xhr, options) {
if (options.type.toUpperCase() === "POST") console.log('POST request');;
}).ajaxComplete(function (event, xhr, options) {
if (options.type.toUpperCase() === "POST") console.log('POST request');
});
使用ajaxSend,您仍然可以使用:xhr.abort()
<强> 编辑: 强>
最好在@ DemoUser的回答中使用jQuery.ajaxPrefilter