javascript - abort() onPopstate 之后 AJAX 停止工作

标签 javascript jquery ajax abort popstate

如果用户单击前进/后退按钮时出现未完成的 AJAX 调用,我将使用以下代码abort()。中止调用一切都很好,但之后对该函数的 future 调用将不起作用。当我尝试在中止后调用 swapContent() 时,它什么也不做。中止后如何再次调用 AJAX 函数?

全局

var ajax;

AJAX

function swapContent() {

    ajax = $.ajax({
        type: 'GET',
        data: params,
        url: 'content.php',

        success: function(data) {
            $('#browser').html(data);
        },

        error:function(e){
          // Error
        }
    });
}

onPopstate

$(window).on('popstate', function() {

    // Abort active requests
    if(ajax && ajax.readystate != 4){
        ajax.abort();
    }

});

最佳答案

将ajax设置回null:

$(window).on('popstate', function() {
    if(ajax && ajax.readystate != 4){
        ajax.abort();
        ajax = null;
    }
});

关于javascript - abort() onPopstate 之后 AJAX 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875422/

相关文章:

javascript - MongoDB - 如何在 $slice 投影中使用字段值?

javascript - 如何在 Facebook 上发布幻灯片?

javascript - JQuery Sync Selected Radio Button between 2 radio button groups

javascript - 尝试将带有脚本的 html 加载到另一个页面

javascript - Safari 5 扩展 XMLHttpRequest 错误 : INVALID_STATE_ERR: DOM Exception 11

JavaScript 正则表达式帮助 : Match 0 or 1 times but do not capture

javascript - 更改 Jasmine 测试中的全局变量值

jquery - 使用 CSS 在悬停时突出显示另一个元素

javascript - Jquery:当 ajax 请求失败并出现错误 500 时脚本停止

Javascript - 如何确保回调函数在再次执行主函数之前已终止