我正在对ajax调用进行全局拦截,以跟踪某些特定的响应并阻止下一个调用。
本地电话为:
$.ajax({
contentType: "application/json",
dataType: "json",
method: "PUT",
url: url + '/0'
}).then(function (data) {
console.log('LOCAL: this should not be seen too');
nextUser();
});
拦截者是
$(document).ajaxStart(function () {
console.log("GLOBAL: start");
}).ajaxSend(function (e, xhr, opts) {
console.log("GLOBAL: send");
}).ajaxError(function (e, xhr, opts) {
console.log("GLOBAL: error");
}).ajaxSuccess(function (e, xhr, opts) {
if (xhr.responseJSON.test) {
$('#upgradeModal').modal('show');
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
// change status code
xhr.abort();
return false;
}
console.log("GLOBAL: this should not be seen");
}).ajaxComplete(function (e, xhr, opts) {
console.log("GLOBAL: complete");
}).ajaxStop(function () {
console.log("GLOBAL: stop");
});
真的,我需要破解ajaxSuccess或ajaxComplete,但其他人只是在这里进行测试。 结果是
GLOBAL: start
GLOBAL: send
GLOBAL: complete
GLOBAL: stop
LOCAL: this should not be seen too
所以这个console.log
“全球:这不应该被看到”
显示不正确,但是我不需要看到这个
“本地:这也不应该看到”
也。如您所见,我尝试使用“ stopImmediatePropagation”之类的代码进行所有操作,但仍然没有任何操作。是否可以停止传播此ajax调用?