如何使用Javascript从特定域中删除cookie

How do I delete a cookie from a specific domain using Javascript?

本文关键字:删除 cookie 何使用 Javascript      更新时间:2023-09-26

假设我在http://www.example.com我想删除一个域为.example.com的cookie和另一个域是www.example.com的cookie。

我目前正在使用这个通用函数:

var deleteCookie = function (name)
{
  document.cookie = name + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};

它似乎只是在删除域为www.example.com的cookie。

但是,我如何指定,以便它也删除域为.example.com的cookie?

编辑:基本上我正在寻找一个可以删除所有与http://www.example.com只要它们没有httponly标志。有这样的功能吗?

只有在http://example.com并且想要删除http://blah.example.com曲奇它在www.example.com上也不起作用——只有"基本"域可以删除子域cookie。

还有"所有子域"cookie,以a开头。,并且也只能由基本域删除。

从基本域,这应该可以删除它:

document.cookie = 'my_cookie=; path=/; domain=.example.com; expires=' + new Date(0).toUTCString();

或者使用优秀的jquery.cookie插件:

$.cookie('my_cookie',null, {domain:'.example.com'})

为了安全起见,您不允许在其他网站上编辑(或删除)cookie。由于不能保证您同时拥有foo.domain.combar.domain.com,因此不允许您从bar.domain.com编辑foo.domain.com的cookie,反之亦然。

考虑一下,如果你被允许这样做,并去了一个恶意网站,然后回到你的银行,在那里你将把一张支票存入你的银行账户。但在恶意网站上,他们用自己的银行信息更新了你的银行cookie。现在,突然间,支票将被存入恶意网站所有者的银行账户。

只想添加到此注册表。删除子域中的顶级cookie。

我在冲浪;mysub.mysite.se";在引用的js文件(mysub.mysite.se/file.js)中使用以下脚本

该代码确实删除了域为"的_fbp cookie;。mysite.se";。

document.cookie = '_fbp=;expires=Thu, 01 Jan 2010 00:00:00 UTC; path=/; domain=.mysite.se';
document.cookie = '_fbp=;expires=Thu, 01 Jan 2010 00:00:00 UTC; path=/; domain=www.mysite.se';
document.cookie ='_fbp=;expires=Thu, 01 Jan 2010 00:00:00 UTC; path=/; domain=mysite.se';

所以@kba所说的不是100%正确的,但当你试图删除第三方域上的cookie时,情况就是这样。

如果您使用的是"通用cookie",您可以在此处使用remove()函数进行检查。

cookies.remove('my_cookie', { domain: window.location.hostname});-此域

cookies.remove('my_cookie', { domain: '.example.com' });-任何其他损坏

我们需要设置cookie来删除它们。

示例:

this.cookieService.set(cookiename, '', new Date('Thu, 01 Jan 1970 00:00:01 GMT'));

有关详细信息,请参阅下面的Git位置。https://github.com/7leads/ngx-cookie-service/issues/5https://github.com/angular/angular/issues/9954