JavaScript Cookie绝对拒绝删除

时间:2017-09-03 18:35:23

标签: javascript cookies session-cookies hapijs

这与我的其他question有关,我问了一个新问题,因为我已经缩小了这个问题,原来的问题变得相当复杂。

简而言之,我有一个拒绝删除的cookie!

我的服务器设置了Cookie“ session = abc; domain = example.com; path = /;

我想编辑这个cookie客户端,所以我想把abc更改为xyz然后运行以下代码

"session=abc; domain=example.com; path=/;"
"session=xyz; domain=.example.com; path=/;"

现在,当我检查cookie时,我实际上现在有以下两个cookie(注意前导点):

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

我很快放弃了尝试强制我的新Cookie删除点,而是在设置新Cookie之前选择删除现有Cookie。

但是,这个:

document.cookie = 'session=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=example.com;';

和此:

{{1}}

两者都做不了什么

当我甚至无法让域名匹配时,我该如何删除cookie呢?

NB

在写这个问题时,事情变得更复杂了!我刚刚注意到上述行为只发生在特定页面上,如果我试图从另一个页面删除服务器的cookie,它会毫不费力地消失

侮辱伤害 这实际上在IE / Edge

中按预期工作

3 个答案:

答案 0 :(得分:1)

我知道除非必要,否则你不想使用依赖项,但JS-Cookie是一个非常轻量级,经过广泛测试的交叉兼容库。它不应该影响性能,可能正是您正在寻找的

以下是GitHub repo的链接。

干杯!

答案 1 :(得分:0)

使用jQuery cookie库而不是直接访问document.cookie https://plugins.jquery.com/cookie/

然后就像jQuery.cookie('session','xyz',{ path: '/' });

一样使用它

答案 2 :(得分:0)

通过完全删除域名解决了这个问题!

document.cookie = 'session=xyz; path=/; domain=;";

希望这有助于其他人,因为这是诊断的绝对婊子

修改

所以在命运的残酷扭曲中,这确实解决了chrome和firefox的问题,但你猜对了 - IE / Edge现在把玩具扔出婴儿车!

我放弃了