我有一个php web应用程序,我使用身份验证方法。我在与索引文件相同的目录中有一个脚本logout.php。 我希望如果使用的mid会话决定退出或离开页面,则会执行logout.php中的代码。
我尝试过使用
function closeIt()
{
var exit = confirm("Are you sure you want to end this chat session ?");
if(exit==true){
$.ajax({
type: "GET",
url: "logout.php",
success: function(){ alert("Done");}
});
}
}
window.onbeforeunload = closeIt;
我收到确认框, 但是我没有取得成功,我是在做一些事情,还是我需要一种全新的方法?
答案 0 :(得分:1)
Ajax调用是异步执行的,因此进行调用并立即将处理传递回页面,然后在ajax调用完成之前关闭。
您需要进行同步调用才能使其正常工作。
答案 1 :(得分:0)
AJAX中的A代表异步。您可能希望使用同步XMLHttpRequest或在closeIt()
结束时返回false(这应该会阻止关闭窗口),并在您的成功函数中,将onbeforeunload
更改为null
并使用{关闭窗口{1}}