我在浏览器关闭之前使用$(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){
},
});
});
答案 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){
},
});
因为在本地主机上,服务器不会有很长的延迟 您需要指定等待响应,因为它需要时间 (几毫秒但仍有太多时间用于异步任务)