会话cookie在浏览器关闭但是仍然发送到服务器时到期

时间:2012-05-18 16:00:13

标签: javascript cookies session-cookies

我对cookies感到困惑。如果我写这样的cookie

 document.cookie = "userName=" + me.name + ";";

然后通过Ajax调用和页面加载(我读取并使用该值)将其传递给服务器。但是,cookie也会在访问之间持续存在,即如果浏览器关闭并重新打开,它仍然存在。我不想要那个。但是,如果我将它设置为像这样的会话cookie

 document.cookie = "userName=" + me.name + "; expires=;";

然后在浏览器关闭时正确删除它,但它不会通过Ajax调用和页面加载发送到服务器。

(N.B。浏览器会话之间的持久性可能是IE10测试版错误,其他帖子表明我的第一行应该生成一个在浏览器关闭时过期的cookie。)

这两条线在创建的cookie类型方面的区别是什么,如果我想在浏览器关闭时死亡但是传递给服务器的cookie,那么正确的JavaScript是什么?设置它?

1 个答案:

答案 0 :(得分:2)

如果您没有为cookie指定过期时间,它通常会在会话结束/浏览器关闭时到期。

我不确定在下面的代码结尾会出现什么样的副作用 +“(打开双引号)。没有语法错误?

document.cookie = "userName=" + me.name + ";

你是说?

document.cookie = "userName=" + me.name;

此外,您是否有可能已经设置了持久性cookie,在这种情况下,只有第二个代码会将其更改为会话cookie?