如何通过 jQuery 更新 cookie 的过期日期?

发布于 2024-11-02 20:21:00 字数 626 浏览 0 评论 0原文

我想通过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青柠芒果 2024-11-09 20:21:00

这似乎有效:

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:'/' });

This seems to work:

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:'/' });
一抹淡然 2024-11-09 20:21:00

只是我的两分钱:你的饼干最初是什么?

我尝试使用像这样初始化的 cookie 重现您的问题:

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

并且它有效。

但我尝试使用像这样初始化的 cookie:

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

我不认为 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:

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

and it worked.

but I tried with a cookie that is initialized like this:

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

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]"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文