AJAX停止传播下一个调用

时间:2018-09-26 07:32:32

标签: javascript ajax javascript-events

我正在对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调用?

0 个答案:

没有答案