2012-09-07 128 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”。