在浏览器关闭时调用ajax,而不是更改url


Call ajax on browser close, not url change

我想在用户没有手动从应用程序注销时插入注销时间戳,即,如果用户关闭浏览器而没有从系统注销,系统应该在浏览器关闭事件或使用jquery, ajax和php做同样的任何其他解决方案是受欢迎的。我尝试了以下代码:

<script type="text/javascript">
      window.onbeforeunload = function() {
          $.ajax
            ({ 
                url: 'logout.php',
                data: "",
                type: 'post',
                success: function()
                {
                    .....
                }
            });
      }
</script>

但窗口。Onbeforeunload函数()每次在webkit浏览器(如chrome)中url更改时都会将我注销,因为它的特征。我需要一些跨浏览器的解决方案。关于这个问题,我在stackoverflow上看到了各种各样的队列,但我找不到任何解决方案来帮助我。

并且我还需要提到,在logout.php中,我使用会话终止代码并在数据库中插入查询以及注销时间戳。

我想建议以下代码ajax调用浏览器关闭。

<script type="text/javascript">
    window.onbeforeunload = function() {
        var ticketId = $('#ticketId').val();
        $.ajax({
            url: '/ticket-window-close/'+ticketId,
            type: 'GET',
            async: false,
            timeout: 10000
        });
    };
</script>