如何使用 jQuery 删除 cookie?

问题描述 投票:0回答:8

我想用jQuery删除cookie;我试过这个:

$.cookie('name', '', { expires: -1 });

但是当我刷新页面时,cookie仍然存在:

alert('name:' +$.cookie('name'));

为什么?

jquery cookies jquery-cookie
8个回答
160
投票

要使用 JQuery 删除 cookie,请将值设置为 null:

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

编辑:最终的解决方案是每次访问cookie时都显式指定

path
属性,因为OP从不同目录的多个页面访问cookie,因此默认路径不同(这在原文中没有描述)问题)。在下面的讨论中发现了解决方案,这解释了为什么这个答案被接受 - 尽管不正确。

对于某些版本的 jQ cookie,上述解决方案会将 cookie 设置为字符串 null。因此不删除cookie。请改用下面建议的代码。

$.removeCookie('the_cookie', { path: '/' });

76
投票

你可以试试这个:

$.removeCookie('the_cookie', { path: '/' });

来源:https://github.com/carhartl/jquery-cookie#readme


15
投票

您也可以在不使用jquery.cookie插件的情况下删除cookie:

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';

4
投票

是对cookie的误解问题。 浏览器不仅识别键的 cookie 值,还比较选项路径和域。 因此,浏览器会识别不同的值,即键为“name”且带有服务器设置选项(path='/';domain='mydomain.com')的 cookie 值,而键为“name”且无选项。


1
投票

试试这个

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

{ path: '/' } 为你完成这项工作


0
投票

仅当设置path时才为我工作,即:


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



0
投票
js-cookie

版本。

因此要么使用 

js-cookie

v1.5.1

$.removeCookie
$.cookie
用于其他操作),或者如果您使用的是 2.0.0 或更高版本,旧的 API 已更改为
Cookies.remove
Cookies.set
Cookies.get
)等)
(在这里找到完整的答案

https://github.com/carhartl/jquery-cookie/issues/386#issuecomment-192234833


-3
投票

© www.soinside.com 2019 - 2024. All rights reserved.