如何删除会话Cookie?

时间:2009-07-06 07:05:34

标签: javascript jquery cookies

如何通过javascript动态删除会话cookie,而无需手动重启浏览器?

我在某处读到会话cookie保留在浏览器内存中,并在浏览器关闭时被删除。

// sessionFooCookie is session cookie
// this code does not delete the cookie while the browser is still on
jQuery.cookie('sessionFooCookie', null);

感谢。

  

更多信息:上面的代码段是一个   javascript代码片段,使用jQuery   和它的jQuery.cookie插件。

7 个答案:

答案 0 :(得分:64)

会话cookie只是一个没有过期日期的普通cookie。这些由浏览器处理,直到窗口关闭或程序退出为止。

但如果cookie是httpOnly cookie(设置了httpOnly parameter的cookie),则无法从HTTP外部读取,更改或删除它(意味着必须在服务器上更改)

答案 1 :(得分:32)

请务必提供与设置时完全相同的路径,即

环境:

$.cookie('foo','bar', {path: '/'});

卸下:

$.cookie('foo', null, {path: '/'});

请注意

$.cookie('foo', null); 

不起作用,因为它实际上不是相同的cookie。

希望有所帮助。 哈希

中的其他选项也是如此

答案 2 :(得分:6)

在将过期日期设置为过去时,IE和Opera存在已删除会话cookie的问题(这是jQuery cookie插件的作用)

这在Safari和Mozilla / FireFox中运行良好。

答案 3 :(得分:2)

您可以通过将到期日期设置为昨天来完成此操作。

我在JavaScript中关于Cookie的新帖子可以为您提供帮助。

http://www.markusnordhaus.de/2012/01/20/using-cookies-in-javascript-part-1/

答案 4 :(得分:1)

这需要在发布cookie的服务器端完成。

答案 5 :(得分:0)

如果是 会话 cookie + hostOnly cookie(如默认挂毯会话的 cookie) 要从 Javascript 中删除,您还必须在编辑/过期 cookie 时不指定域,并且不指定过期日期并将值设置为 null。 >

function clearHOnlySessionCookie(name,  path){
    var domain = domain || document.domain;
    var path = path || "/";
    document.cookie = name + "=null; path=" + path+";";
};

答案 6 :(得分:-3)

删除jQuery cookie

$(function() {
    var COOKIE_NAME = 'test_cookie';
    var options = { path: '/', expires: 10 };
    $.cookie(COOKIE_NAME, 'test', options); // sets the cookie
    console.log( $.cookie( COOKIE_NAME)); // check the value // returns test
    $.cookie(COOKIE_NAME, null, options);   // deletes the cookie
    console.log( $.cookie( COOKIE_NAME)); // check the value // returns null
});