我的同事遇到了一个问题,没有cookie可以通过这样的代码在Chrome上设置:document.cookie = "TEST=1; expires=Tue, 14 Oct 2014 20:23:32 GMT; path=/"
如果我没有做任何更改,那么在控制台中立即输入document.cookie
,结果会显示出来。刷新页面时,cookie不在那里,所以它报告正确,只是设置不正确。
如果他打开了一个新的匿名窗口并为其他所有人工作,上面的代码将工作。我使用开发工具删除了他所有的cookie,但仍然没有手动设置cookie的运气(尽管其他人会回来,通过服务器头设置)。
一旦他重新启动Chrome,它就开始正常运行,所以看起来他遇到了一些无法再复制的怪癖或bug。
有其他人遇到过这种情况吗?到目前为止,我正在考虑检查document.cookie
在设置后返回的报告是什么,然后启动我们的无cookie流程,当用户禁用cookie时,事情不匹配。我讨厌这样做的想法,所以任何建议/答案都是伟大的。
6条答案
按热度按时间nhn9ugyo1#
Cookie的工作方式,至少在Chrome中,有点奇怪。
如果您需要更改cookie的值,则需要逐个添加/设置每个键。
在您的主机中尝试以下操作:
是的,它添加了密钥,而不是将整个cookie替换为
TEST=1
。如果您需要移除机码,您可以不提供任何值:
TEST=
.我希望这能让你从饼干噩梦中走出来(对我来说是)。
33qvvth12#
确保在服务器上运行它(至少是本地服务器),这样document.cookie才能正常工作。
如果您在浏览器中本地运行此文件,.“document.cookie”将无法工作。
w8ntj3qf3#
正如另一个用户提到的,你必须一个一个地设置它们。这些函数在解析和应用cookie字符串时非常有用:
pkmbmrz74#
您必须设置域!
jtw3ybtb5#
可能是cookie的有效期设置有问题。我以前在Chrome浏览器上遇到过类似的问题。将日期设置为当前或未来的日期,然后测试它是否有效。可能Chrome浏览器就是这样设计的。
gjmwrych6#
我们有同样的问题在工作中前一段时间,在我们的情况下,它只发生在我们工作在本地环境,经过研究,我们遇到了一篇文章说,浏览器有一些问题的localhost:3000,因为它识别为一个不安全的网页或类似的东西。我们修复了只是更换localhost:3000为127.0.0.1:3000(我认为ip取决于您的配置),并在我们更换后,它的工作完美。我希望它能帮助你。