2013-04-27 70 views
-1

我想寫非常簡單的AJAX,但有一些問題。 這裏是我的Ajax代碼:問題與AJAX在php

<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()和手動刷新頁面它的工作。但如果取消註釋該行它刷新頁面,但我仍然登錄

回答

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); 
+0

工作,謝謝。 – 2013-04-27 15:08:41

+0

也嘗試異步模式。祝你好運。 (不要忘記接受我的答案,將其標記爲'正確':)謝謝) – 2013-04-27 15:15:28

+0

回答太快,必須等到堆棧溢出讓我接受它。 :) – 2013-04-27 15:18:43