2012-02-01 29 views
1

我在删除包含多个值的Cookie时遇到了一些问题 - 值由(*)分开。无法删除具有多个值的Cookie

如果cookie只包含一个值,我可以很容易地删除它,但只要有多个值,我必须按两次按钮才能删除cookie ... - 我需要在脚本中定义cookie值,如果是这样,如何...?

$('a.home').click(function (e) { 
    $.cookie('breadcrumbs', null, {path:'/'}); 
}); 

回答

0

我假定您使用的是jquery.cookie.js。如果是这样,它工作在这里很好外汇9.0.1

$.cookie('foo', 'bar*baz'); 
//"foo=bar*baz" 

$.cookie('foo'); 
//"bar*baz" 

$.cookie('foo', null); 
//"foo=null; expires=Tue, 31 Jan 2012 11:34:16 GMT" 

$.cookie('foo'); 
//null (actual null, not string "null") 
+0

是的,我做了 - 但是我没有在每一页上使用它 - 因此,我不得不按下按钮两次... - 现在我工作的方式... :-) – 2012-02-01 12:02:30

1

的插件使得内部使用的encode/decodeURIComponent,从而影响*字符。

望着$ .cookie API,你应该能够做到

$.cookie('breadcrumbs', null, {path:'/', raw: true}); 

,防止decodeURIComponent正在对你的价值运行(你可能不得不sepecify原料:创建cookie时太真)

+0

我完全错过了encodeURI文档,*实际上是不受其影响的字符之一,所以这个答案不可能有任何帮助 – wheresrhys 2012-02-01 11:52:43

+0

另外,在删除时,没有设置值。给出一个空值,消极过期。因此,即使'*'要编码,它应该对删除有效。 – JAAulde 2012-02-01 12:32:35