使用AJAX调用的jQuery卸载无法在Chrome中运行

id2*_*677 2 javascript ajax jquery onbeforeunload

这是我非常简单的代码片段:

$(window).unload(function() {
        $.ajax({
            url: 'stats_pages.php?last_id='+$("#last_id").val(),
        });
});
Run Code Online (Sandbox Code Playgroud)

很简单.AJAX调用在Firefox中完美调用,但在Chrome中失败.我尝试了其他变体,这些工作:

window.onbeforeunload = function(){
        $.ajax({
            url: 'stats_pages.php?last_id='+$("#last_id").val(),
        });
        return false;
}
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,但它通常会以"您确定要离开此页面吗?"提醒"虚假".消息,这显然不是我想要的.没有它return false;,它不会激活AJAX调用.

理想情况下,我喜欢第一个最好的解决方案,但有人知道发生了什么吗?

Bri*_*her 11

在你的ajax调用中设置ASYNC:false

$(window).unload(function() {
        $.ajax({
            url: 'stats_pages.php?last_id='+$("#last_id").val(),
            async : false,
        });
});
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案仍然有效吗?我将async设置为false,即使事件被触发,我的AJAX调用仍然没有收到. (13认同)