使用javascript设置持久cookie

使用javascript设置持久cookie,javascript,cookies,Javascript,Cookies,我在我的应用程序中发现了一个奇怪的bug,由于我使用Javascript的经验不多,我无法调试它 我正在尝试设置一个持久cookie,它将在一年后从其集合中消失(在主要浏览器中为最大值),但会持续存在,并且在浏览器关闭后不会被删除。我一直在使用以下代码: // Build the expiration date string: var expiration_date = new Date(); expiration_date.setYear (expiration_date.getYear ()

我在我的应用程序中发现了一个奇怪的bug,由于我使用Javascript的经验不多,我无法调试它

我正在尝试设置一个持久cookie,它将在一年后从其集合中消失(在主要浏览器中为最大值),但会持续存在,并且在浏览器关闭后不会被删除。我一直在使用以下代码:

// Build the expiration date string:
var expiration_date = new Date();
expiration_date.setYear (expiration_date.getYear () + 1);
expiration_date = expiration_date.toGMTString();
// Build the set-cookie string:
var cookie_string = "test_cookies = true; path=/; expires=" + expiration_date;
// Create/update the cookie:
document.cookie = cookie_string;

我注意到,当我使用cookie manager插件时,cookie有一个会话标记,当浏览器关闭时,只有带有此标记的才会被删除(其他像Wordpress之类的脚本仍然存在)。

我将您的语法改为我的编码风格(顶部的变量、最小的重新转换等)下面的例子在我的本地主机上运行得很好

// Build the expiration date string:
var expiration_date = new Date();
var cookie_string = '';
expiration_date.setFullYear(expiration_date.getFullYear() + 1);
// Build the set-cookie string:
cookie_string = "test_cookies=true; path=/; expires=" + expiration_date.toUTCString();
// Create or update the cookie:
document.cookie = cookie_string;

如果您在生产服务器上遇到问题,请尝试设置cookie的域()

您是否尝试使用
Date
实例的
getYear()和
setFullYear()方法,而不是
getYear()
setYear()
?后者已被弃用,请参阅


希望有帮助!干杯。

您也可以使用
max age
属性

cookie_string = "test_cookies=true; path=/; max-age=31536000";
  • 一周:最大年龄=604800
  • 一个月:最大年龄=2628000
  • 一年:最大年龄=31536000

浏览器关闭时,有效期将阻止删除该文件。这就是他们的目的。嗨@pete,你知道我们如何在js cookie脚本中添加这个持久化吗?谢谢@Gregdebrick我不确定你指的是哪个
js cookie
脚本,所以马上,不。不管怎样,你的评论都是一个很好的问题!你应该把它作为一个单独的问题问