我正在使用以下代码创建cookie:
var cnm="exampleCookie";
var exdays=365*4;
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : ";
expires="+exdate.toUTCString());
document.cookie=cnm + "=" + c_value;
但是,Firefox(v 35.0.1)会在会话结束时删除cookie,而不是将cookie保存到其过期之前。这不会发生在Chrome中,Firefox也不会删除同一网站上的其他Cookie。我也在github托管的页面上使用了相同的JS代码,它在浏览器关闭后保留了cookie。设置后检查cookie(使用Cookies Manager+ addon)表明它已设置为有效期。
我怎样才能让Firefox停止删除这个cookie?
答案 0 :(得分:0)
要让最新的浏览器遵守Cookie过期日期,您需要设置Max-Age
指令。 Expires
适用于旧版浏览器,如IE6,7& 8和FF 3和chrome早期版本。从HTTP 1.1开始,Max-Age
在任何符合标准的浏览器中都有效,并且所有最新版本都完全兼容。如果有疑问或者您需要支持旧浏览器以及设置它们,但要小心这些值。 Expires
接受日期字符串,其中Max-Age
需要秒Max-Age=31536000
,这意味着它将在浏览器收到Cookie后的1年后过期