2011-04-22 61 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