2011-04-22 99 views
2

我想通過jQuery更新cookie的到期日期。我正在使用jQuery cookie plugin如何通過jQuery更新cookie的到期日期?

這裏是我以前的截止日期到8小時設置到將來的代碼:

var date = new Date(); 
date.setTime(date.getTime() + (8 * 60 * 60 * 1000)); 
$.cookie('myCookie', $.cookie('myCookie'), { expires: date }); 

這創造一個合適的名字一個新的cookie,但錯誤的屬性:

  • 新cookie的值爲[object Object]而不是原始的以&符號分隔的鍵值cookie字符串
  • 新cookie中沒有SSL(安全)標誌(舊cookie已將SSL標誌設置爲true)
  • 過期設置當瀏覽器退出來的不是8小時後的

什麼是隻更新通過jQuery一個cookie的有效期以正確的方式?

回答

2

這似乎工作:

var date = new Date(); 
date.setTime(date.getTime() + (8 * 60 * 60 * 1000)); 
var myCookieValue = $.cookie('myCookie'); 
$.cookie('myCookie', null); 
$.cookie('myCookie', myCookieValue, { expires:date, secure:true, path:'/' }); 
0

只是我的兩分錢:你的餅乾最初是什麼?

我嘗試OT重現您的問題用一個cookie是初始化這樣的:

$.cookie("myCookie", "myValue") 

和它的工作。

,但我試圖與被這樣初始化一個cookie:

$.cookie("myCookie", {myParameter: "myValue"}) 

我不認爲該cookie jQuery插件是設計來存儲對象。您只能保存字符串值。所以,當你這樣$.cookie("myCookie"),其返回"[object Object]"

+0

我需要保持cookie的原始值,這就是爲什麼我指定'$ .cookie(「的myCookie」)' 。但是這不會返回cookie的原始值,它會返回'[object Object]'。我需要cookie中包含的字符串(值)。 – 2011-04-22 09:14:21

+0

是的,我認爲它返回[object Object],因爲你之前保存了一個對象而不是字符串值。這就是爲什麼我問:「你最初怎麼存儲你的cookie?」 – 2011-04-22 12:51:56