97

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

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

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

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

为什么?

4

7 回答 7

154

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

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

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

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

$.removeCookie('the_cookie', { path: '/' });
于 2010-09-08T20:51:14.617 回答
72

你可以试试这个:

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

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

于 2013-06-05T11:32:51.790 回答
15

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

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
于 2013-05-21T16:30:57.977 回答
4

是对cookie的误解的问题。浏览器不仅可以识别键的 cookie 值,还可以比较选项路径和域。因此,浏览器通过服务器设置选项(path='/'; domain='mydomain.com')识别不同的值,哪个 cookie 值的键是“名称”,而键是没有选项的“名称”。

于 2011-10-03T10:01:22.547 回答
1

试试这个

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

{ path: '/' } 为您完成工作

于 2013-04-06T01:33:05.647 回答
1

在设置时为我工作path,即:

$.cookie('name', null, {path:'/'})
于 2014-04-30T12:09:54.390 回答
-3

您所做的是正确的,问题出在其他地方,例如,cookie 在刷新时以某种方式再次设置。

于 2010-09-08T21:06:04.400 回答