1

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

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

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

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

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

(注意,浏览器会话之间的持续存在可能是 IE10 测试版错误,其他帖子建议我的第一行应该生成一个 cookie,该 cookie 在浏览器关闭时过期。)

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

4

1 回答 1

2

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

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

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

你的意思是?

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

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

于 2012-05-18T16:21:42.180 回答