我正在使用多个ajax调用。但是使用AjaxSetUp
来了解是否允许调用,如果没有,则尝试在beforeSend
方法中中止此操作。
这里是ajax调用
$.ajax({
type : "POST",
url : "/apps/doAction",
xhrFields : "checkIfAllowed",
success : function(response,xhr) {
if(response){
return false;
}
},
error : function(xhr,ajaxOptions,thrownError) {
}
});
这里是AjaxSetUp
$.ajaxSetup({
beforeSend: function(event, xhr, settings) {
event.xhrToAbort=xhr;
if(xhr.xhrFields == "checkIfAllowed"){
$.ajax({
type : "POST",
url : contextpath+ "/apps/auth/isAllowed",
success : function(response,xhr) {
if(response){
// ABORT PARENT CALL ("URL: /apps/doAction") unable to abort parent call..
}
},
error : function(xhr,ajaxOptions,thrownError) {
}
});
}
},
complete: function(event, xhr, settings) {
$('.trans-overlay').hide();
}
});
答案 0 :(得分:0)
将event.xhrToAbort=xhr;
替换为event.xhrToAbort=event;
以及你想要中止使用的地方,如event.xhrToAbort.abort();