-1

我正在尝试编写非常简单的 AJAX,但有一些问题。这是我的ajax代码:

<div id="userHeader">
<img src="/images/logout.png" alt="logout"  title="exit"  onclick="ajaxLogOut()" style="cursor: pointer;">
</div>
<script type="text/javascript">
function ajaxLogOut(){
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","/user/logout.php",true);
    xmlhttp.send();
//  location.reload();
}

和我的logout.php:

<?php

session_start();
if (isset($_SESSION['log_in'])) {
unset($_SESSION['log_in']);
unset($_SESSION['username']);
session_destroy();
}
?>

问题是当我评论 location.reload() 并手动重新加载页面时它可以工作。但是如果取消注释该行它会刷新页面但我仍然登录。

4

1 回答 1

0

尝试:

xmlhttp.open("GET","/user/logout.php",false);//sync mode

或者(带有 callbak 的异步模式) - 推荐这个:

xmlhttp.open("GET","/user/logout.php",true);
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        location.reload();
    }
}
xmlhttp.send(null);
于 2013-04-27T15:06:07.803 回答