使用beforeunload()在关闭或重定向页面之前调用Ajax

时间:2016-07-22 05:48:31

标签: jquery onbeforeunload

我在浏览器关闭之前使用$(window).bind(" beforeunload",function(e){})来调用ajax。当我在我的localhost上测试时它实际上正常工作。 对于页面刷新和浏览器关闭,Ajax调用都是完美的。 但是,当我将其上传到在线服务器时,它似乎只适用于页面刷新,不会为浏览器关闭做任何事情,尽管在调用时我需要浏览器关闭的ajax。 这是我的代码:

//before close/reload browser
$(window).bind("beforeunload", function(e) {

   $.ajax({
    type:"POST",
      url: "chat_online.php",
      data:{ job: 'agent_on_off', id:to_id },
      success: function(t){

      },
    });        

});

1 个答案:

答案 0 :(得分:2)

尝试使用async:false进入ajax参数。它会起作用。

 $.ajax({
    type:"POST",
      url: "chat_online.php",
      data:{ job: 'agent_on_off', id:to_id },
      async: false,
      success: function(t){

      },
    });
  

因为在本地主机上,服务器不会有很长的延迟   您需要指定等待响应,因为它需要时间   (几毫秒但仍有太多时间用于异步任务)