php ajax窗口关闭问题

时间:2011-04-13 17:35:15

标签: php javascript jquery ajax

我有一个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;

我收到确认框, 但是我没有取得成功,我是在做一些事情,还是我需要一种全新的方法?

2 个答案:

答案 0 :(得分:1)

Ajax调用是异步执行的,因此进行调用并立即将处理传递回页面,然后在ajax调用完成之前关闭。

您需要进行同步调用才能使其正常工作。

答案 1 :(得分:0)

AJAX中的A代表异步。您可能希望使用同步XMLHttpRequest或在closeIt()结束时返回false(这应该会阻止关闭窗口),并在您的成功函数中,将onbeforeunload更改为null并使用{关闭窗口{1}}