我想使用JQuery删除cookie;我试过了
$.cookie('name', '', { expires: -1 });
然后刷新页面,cookie仍然存在:
alert('name:' +$.cookie('name'));
为什么?谢谢
Answers:
要使用JQuery删除cookie,请将值设置为null:
$.cookie("name", null, { path: '/' });
编辑:最终解决方案是path
在访问cookie时显式指定属性,因为OP从不同目录中的多个页面访问cookie,因此默认路径是不同的(原始问题中未对此进行描述)。在下面的讨论中发现了该解决方案,该解决方案解释了为什么接受此答案-尽管不正确。
对于某些版本的jQ cookie,上述解决方案会将cookie设置为字符串null。因此不删除cookie。使用下面建议的代码代替。
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
来看,该函数位于处理函数内部,因此它们应该执行相同的功能。(参数为(name, value, options)
)
path
在两个命令的选项中显式设置,因为它默认为当前页面的路径。通过在读取和写入Cookie的所有位置均设置为您域的根进行测试:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
做。
您可以尝试以下方法:
$.removeCookie('the_cookie', { path: '/' });
试试这个
$.cookie('_cookieName', null, { path: '/' });
{path:'/'}为您完成工作
仅在path
设置时为我工作,即:
$.cookie('name', null, {path:'/'})
您正在执行的操作是正确的,问题出在其他地方,例如在刷新时以某种方式再次设置了cookie。