Chrome中奇怪的document.cookie行为[重复]

Posted

技术标签:

【中文标题】Chrome中奇怪的document.cookie行为[重复]【英文标题】:Weird document.cookie behaviour in Chrome [duplicate] 【发布时间】:2017-10-03 04:28:03 【问题描述】:

最近我遇到了这个奇怪的问题。 cookie 应该使用document.cookie = "key=value" 设置。但是,当我以这种方式设置 cookie 时,会遇到这种意外行为:

如您所见,当您将 document.cookie 分配给任何内容时,它都会附加到 cookie 本身的末尾。根本没有办法删除所有的cookies! Chrome 似乎没有设置 cookie 值,而是以类似的方式将其附加到末尾:

var cookie;
function foo(bar)
    cookie += "; " + bar;

为什么会这样?如您所见,它不是本地文件,我在 *** 网站上使用过(当然注销了)

【问题讨论】:

这是记录在案的行为:developer.mozilla.org/en-US/docs/Web/API/Document/cookie 【参考方案1】:

是的,您所描述的是添加 cookie 的正确方法。

要删除一个cookie,你需要将它的过期时间设置为过去:

document.cookie = key+ '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';

【讨论】:

我想知道为什么这个非常奇怪和重新启动的 API 是这样的?这是在 Javacript 有对象之前发明的吗? 看看 JS 的历史,以及它的灵感是什么。你可以说它从未有过物体,这是非常值得怀疑的。更有可能的是,DOM 的创建者……至少可以说是不一致的。我很想知道是哪个浏览器引入了 cookie,因为它可能是刚刚添加功能的竞争对手之一。

以上是关于Chrome中奇怪的document.cookie行为[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Chrome/Chromium 中奇怪的对角线(错误?)

Chrome开发者工具中奇怪的console.log行为[重复]

使用标准 VS 2010 模板的 chrome 中奇怪的额外填充

Firefox 中奇怪的表格渲染

Firefox中奇怪的textarea行为:添加空格后文本中断

类中奇怪的异步/等待行为