2012-09-07 165 views
1

我們正嘗試使用以下代碼清除瀏覽器中的Cookie詳細信息,但腳本不會從瀏覽器中刪除會話Cookie。但通過使用開發人員工具(工具>開發人員工具>緩存>清除會話Cookie)在IE8瀏覽器中清除會話cookie,將清除cookie。如何刪除會話cookie

<html:link page="/home.do" onclick="logout();"> 
    <html:img page="/images/logout.jpg"/> 
</html:link> 

function logout(){ 
var cookies = document.cookie.split(";");  
for (var i = 0; i < cookies.length; i++)  { 
    var cookiename = cookies[i].split("=");  
    var d = new Date();   
    d.setDate(d.getDate() - 4); 
    var expires = ";expires="+d;  
    var value="";  
    document.cookie = cookiename + "=" + value + expires + ";";  
    } 
} 

如何使用腳本從瀏覽器中清除會話cookie?

+0

爲什麼要刪除cookie?調用'session.invalidate()'就足夠了,無論如何,cookie在瀏覽器退出時都會被刪除。 –

+1

[用JavaScript清除所有Cookie]可能的重複(http://stackoverflow.com/questions/179355/clearing-all-cookies-with-javascript) – tchrist

回答

9

你可以使用這個。

function deleteCookies() { 
    var allcookies = document.cookie.split(";"); 

    for (var i = 0; i < allcookies.length; i++) { 
     var cookie = allcookies[i]; 
     var eqPos = cookie.indexOf("="); 
     var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
     document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
    } 
} 
3

如果僅Http,那麼你就不能刪除它,嘗試從服務器端修改

0

如果要清除一個「會話」變量...

unset($_SESSION['YOUR_SESSION_VARIABLE_NAME']); 

這將完全刪除此會話變量。標題具有誤導性。他顯示的代碼不是「會話」cookie,他們是常規的「cookies」。