为什么设置document.cookie在Chrome中不起作用?

Dav*_*ein 14 javascript google-chrome

我的同事遇到了一个问题,即可以通过以下代码在Chrome上设置无cookie:

document.cookie = "TEST=1; expires=Tue, 14 Oct 2014 20:23:32 GMT; path=/"

document.cookie到控制台后,立即会显示结果,如果我没有进行任何更改.刷新页面时,cookie不存在,因此报告正确,只是没有正确设置.

如果他打开一个新的隐身窗口并且为其他所有人工作,则上述代码将起作用.我使用开发工具删除了所有的cookie,但仍然没有运气手动设置cookie(尽管其他人会通过服务器头设置回来).

一旦他重新启动Chrome,它就会开始正常运行,所以看起来他正在遇到一些无法再复制的怪癖或错误.

有没有其他人遇到这个?截至目前,我正在考虑检查document.cookie报告设置后的预期报告,然后启动我们的cookieless流,以便在用户不匹配时禁用cookie.我讨厌这样做的想法,所以任何建议/答案都会很棒.

ave*_*isk 6

cookie的工作方式,至少在Chrome中,有点奇怪.

如果您需要更改cookie的值,那么你需要添加/设置每个键逐个.

在你的控制台中尝试这个:

document.cookie; // -> "expires=Tue, 14 Oct 2014 20:23:32 GMT; path=/"
document.cookie = 'TEST=1';
document.cookie; // -> "TEST=1; expires=Tue, 14 Oct 2014 20:23:32 GMT; path=/"
Run Code Online (Sandbox Code Playgroud)

是的,它已经添加了密钥,而不是替换整个cookie TEST=1.

如果你需要删除一个键,你可以简单地提供任何值:TEST=.

我希望这会让你摆脱饼干的噩梦(这对我而言).

  • 在实际尝试过之后,我必须说执行 `TEST=` 仍然会留下一个条目,尽管它的值是空的。转到浏览器的 cookie 存储并从那里删除将删除键和值。 (2认同)

Pra*_*eek 5

确保在服务器(至少是本地服务器)上运行它,以便document.cookie起作用。

如果您在浏览器中本地运行此文件。“ document.cookie”不起作用。