如何使用jQuery删除cookie?

如何使用jQuery删除cookie?,jquery,cookies,jquery-cookie,Jquery,Cookies,Jquery Cookie,我想使用jQuery删除cookie;我试过这个: $.cookie('name', '', { expires: -1 }); 但当我刷新页面时,cookie仍然存在: alert('name:' +$.cookie('name')); 为什么?要使用JQuery删除cookie,请将该值设置为null: $.cookie("name", null, { path: '/' }); 编辑:最终的解决方案是在访问cookie时显式指定路径属性,因为OP从不同目录中的多个页面访问cookie

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

$.cookie('name', '', { expires: -1 });
但当我刷新页面时,cookie仍然存在:

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

为什么?

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

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

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

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

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

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

试试这个

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

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

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

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
您可以尝试以下方法:

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

来源:

仅在设置了
路径时为我工作,即:

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

但是从这里的源代码::
如果(value===null){value='';options.expires=-1;}
,这就是处理函数内部的内容,因此它们应该执行相同的操作。(参数是
(名称、值、选项)
)cookie设置代码和测试代码是否在同一页上?如果没有,则需要在选项中将
路径
显式设置为两个命令,因为它默认为当前页面的路径。通过在读取和写入cookie的所有位置都设置为域的根进行测试:
$.cookie('name',value,{path:'/'))
Chadwick>也许您是对的。对于exm。我在site.com中设置cookies,然后进入site.com/user、site.com/user/mod、site.com/user/mod/new,我希望在所有页面中都能看到cookies。路径必须是什么样子,如下所示:{path:'/'}?此代码不删除cookie,但将其值设置为null,-1,因为这实际上不会删除cookie<代码>$.removeCookie('cookie_name')
does.Yah。。我同意当你使用子域时,你可能还需要指定它。特别是因为域名开头的句点可能是必需的(.www.example.com)注意,这对我们来说并不适用,因为代码出于任何原因需要进入另一个函数。$。上面的cookie('name',null)似乎更可靠。然而,这可能对某些人有用。这实际上是真正的答案!虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生变化,只有链接的答案可能会变得无效。对于这个答案,我想说的是OP的做法是正确的。复制粘贴操作代码将是多余的,添加另一个代码将使读者感到困惑。你可以向上滚动查看OP在做什么,这是这里的“基本部分”。但是,如果您觉得最好包含一些内容(显然有些人会这样做……其中一人甚至否决了我的答案:),只需编辑答案并相应地进行修改即可。Regards链接的问题是,它们往往会“腐烂”——它们会改变、移动、消失(举个例子——你的链接已经死了!)。这就是为什么我们希望您引用链接中的相关文本,这样您的答案将是独立的(另请参见)。我很清楚这一点,但再次强调:这里的情况并非如此。上面的整个答案可以重写为“您所做的是正确的,问题出在其他地方,例如,刷新时cookie以某种方式被重新设置”。因此,再次强调,链接腐烂是一个问题,包括链接旁边的答案本身就是一条路要走。这与这个答案无关,因此,如果一个答案包含一个链接,而该链接已失效,那么这并不意味着答案不够好。有些链接只是为了提供更多的细节,但对于答案的完整性来说并不是必需的。在我看来,这种行为就像一个编程糟糕的机器人,没有基本的NLP来理解中给出的上下文链接。你可能应该停止这样做。向下投票,因为你复制并粘贴我的答案yours@OttoKanellis因此,我建议也对接受的答案进行下推(因为它是在我的答案之后编辑的),并对你的答案进行下推(因为你没有突出显示路径参数的重要性)!某些浏览器只有在重新启动浏览器后才会删除cookie。