0

我已将以下代码用于窗口关闭选项卡。它工作正常。但有时不工作。

$(window).on('beforeunload', function() {
    var i = "<?php echo $this->uri->segment(4);?>";
    var j = "<?php echo $_SERVER["REMOTE_ADDR"];?>";
    var k = "<?php echo base_url();?>";     
    $.ajax({
                url: "<?php echo base_url().'home/gethost';?>",
                type: "POST",
                data: { id : i , ip: j },
                datatype : "html"
            });
return 'Exit Now!';
});
4

1 回答 1

0

你有一个竞争条件。由于您的 AJAX 请求正在进行中,浏览器正在拆除页面并带走您的 AJAX 请求。使用同步 AJAX:

$.ajax({
    async: false,
    ....

在某些情况下会有所帮助(我自己也使用过它——根据经验,它有效),但我不认为任何东西都可以保证在这里工作。浏览器通常会对beforeunload.

于 2013-11-15T07:01:23.790 回答