2015-09-25 80 views
2

我想在用户不从应用程序手动注销时插入注销时间戳,即如果用户关闭浏览器而不从系统注销,系统应该注销浏览器关闭事件或任何其他解决方案使用jQuery,Ajax和PHP来做同样的事情是受欢迎的。我尝试下面的代码:在浏览器上调用ajax关闭,而不是url更改

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

但window.onbeforeunload()函数是伐木我出去每次在WebKit浏览器如Chrome的URL变化,因为它的特性。我需要一些跨浏览器解决方案。我在这个问题上看到了各种关于stackoverflow的que-ans,但我找不到任何解决方案帮助我解决这个问题。

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

+0

那是因为当用户移动到下一页时,您的站点中的每个页面都会被卸载! DUH! – RiggsFolly

+1

我可能会弄错了,如果我这样做,请纠正我,但如果在关闭后没有浏览器,应如何查看显示在浏览器范围内的任何内容? –

+0

我不知道。您可能是对的,但必须有某种方式,以便如果用户不手动注销,并且我需要一些代码(在我的情况下用logout.php编写代码)来运行,以便数据库没有注销日期值。 @AlanMachado –

回答

0

我想建议下面的代码为浏览器关闭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>