gpt4 book ai didi

javascript - 通过 JS 设置的 Cookie 在浏览器关闭时过期未过期

转载 作者:行者123 更新时间:2023-12-01 17:46:45 26 4
gpt4 key购买 nike

在 Firefox 和 Safari 中进行测试,我尝试了以下两行。每个设置 cookie,但两种方法都不会在我关闭(然后重新打开)浏览器后使 cookie 过期。浏览器的 cookie 信息显示“测试”设置为过期,“在 session 结束时”,但它并没有发生。

有一些类似的帖子(例如 When does a cookie with expiration time 'At end of session' expire?),但没有任何帮助,也没有像我正在做的那样专门通过 JavaScript 设置 cookie。

// fails to expire after browser closing
document.cookie = "test=1; expires=0; path=/";

// fails to expire after browser closing
document.cookie = "test=1; path=/";

最佳答案

expires 标签想要得到一个 UTC-Datestring。你可以只使用我写的一些简单的函数:

setCookie = function(attrib, value, exp_days) {
var dt = new Date();
dt.setTime(dt.getTime() + (exp_days*86400000)); // Convert days to ms
document.cookie = attrib + "=" + value + "; expires=" + dt.toUTCString(); // add attrib=value to the cookie and set an expiration date
}

getCookie = function(attrib){
var split_cookie = document.cookie.split("; ");
attrib+="=";
for(var i=0; i<split_cookie.length; i++)
if(~split_cookie[i].indexOf(attrib)) // if the attribute is somewhere in the cookie string
// im using an ugly bitflip operator here, it could as well be an if(...!=-1)
return split_cookie[i].substring(attrib.length + split_cookie[i].indexOf(attrib),split_cookie[i].length);
return "";
}

removeCookie = function(attrib){
setCookie(attrib, "", -1);
}

如果使用removeCookie()函数,当离开当前页面时,attrib的值将被删除。

关于javascript - 通过 JS 设置的 Cookie 在浏览器关闭时过期未过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com