如何通过 jQuery 更新 cookie 的过期日期?
我想通过 jQuery 更新 cookie 的过期日期。我正在使用 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 小时future
通过 jQuery 只更新 cookie 过期日期的正确方法是什么?
I'd like to update the expiration date of a cookie via jQuery. I am using the jQuery cookie plugin.
Here is the code I used to set the expiration date to 8 hours into the future:
var date = new Date();
date.setTime(date.getTime() + (8 * 60 * 60 * 1000));
$.cookie('myCookie', $.cookie('myCookie'), { expires: date });
This created a new cookie with the right name, but the wrong attributes:
- The new cookie had the value
[object Object]
instead of the original, ampersand-delimited, key-value cookie string - No SSL (secure) flag in the new cookie (old cookie had SSL flag set to true)
- Expiration was set to when the browser is quit, instead of 8 hours into the future
What is a correct way to only update the expiration date of a cookie via jQuery?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这似乎有效:
This seems to work:
只是我的两分钱:你的饼干最初是什么?
我尝试使用像这样初始化的 cookie 重现您的问题:
并且它有效。
但我尝试使用像这样初始化的 cookie:
我不认为 cookie jQuery 插件是为了存储对象而设计的。您只能保存字符串值。所以当你这样
$.cookie("myCookie")
时,它返回"[object Object]"
Just my two cents: what is your cookie initially ?
I try ot reproduce your issue with a cookie that is initialize like this:
and it worked.
but I tried with a cookie that is initialized like this:
I don't think the cookie jQuery plugin is design to store object. You can only save string value. so When you so
$.cookie("myCookie")
, it return"[object Object]"