jquery,删除cookie

use*_*854 86 cookies jquery jquery-cookie

我想用JQuery删除cookie; 我试过这个

$.cookie('name', '', { expires: -1 });
Run Code Online (Sandbox Code Playgroud)

然后我刷新页面,cookie仍然存在:

alert('name:' +$.cookie('name'));
Run Code Online (Sandbox Code Playgroud)

为什么?谢谢

Cha*_*ick 141

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

$.cookie("name", null, { path: '/' });
Run Code Online (Sandbox Code Playgroud)

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

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

$.removeCookie('the_cookie', { path: '/' });
Run Code Online (Sandbox Code Playgroud)

  • -1因为这实际上并没有删除cookie.`$ .removeCookie('cookie_name')`的确如此. (11认同)
  • Cookie设置代码和测试代码是否在同一页面上?如果没有,您需要在两个命令的选项中明确设置`path`,因为它默认为当前页面的路径.通过在读取和写入cookie的所有位置设置为域的根来进行测试:`$ .cookie('name',value,{path:'/'})` (9认同)
  • 此代码不会删除cookie,但会在其值中设置null. (2认同)

小智 69

你可以试试这个:

$.removeCookie('the_cookie', { path: '/' });
Run Code Online (Sandbox Code Playgroud)

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


Jan*_*ter 15

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

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
Run Code Online (Sandbox Code Playgroud)