2012-02-01 26 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