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

The*_*Guy 7 javascript cookies subdomain

假设我在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;';
};
Run Code Online (Sandbox Code Playgroud)

这似乎只是删除域名为www.example.com的 cookie .

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

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

Kev*_*vin 8

只有当您在http://example.com并且想要删除http://blah.example.com cookie时,才能执行此操作.它也无法在www.example.com上运行 - 只有"基础"域可以删除子域cookie.

还有"所有子域"cookie,以.开头,也只能被基域删除.

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

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

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

$.cookie('my_cookie',null, {domain:'.example.com'})
Run Code Online (Sandbox Code Playgroud)

  • “只有“基”域可以删除子域 cookie。” 对我来说至关重要的提示。 (2认同)

kba*_*kba 6

为安全起见,您不得在其他网站上编辑(或删除)Cookie.由于没有保证,您拥有这两个foo.domain.combar.domain.com,你将不会被允许编辑的饼干foo.domain.combar.domain.com反之亦然.

考虑一下您是否被允许这样做并进入恶意网站,然后返回您要将支票存入您的银行帐户的银行.但是,在恶意网站上,他们使用自己的银行信息更新了您的银行Cookie.现在,突然间,支票将被存入恶意网站所有者的银行账户.

  • @TheRandomGuy Chrome 控制台的工作限制与从网站执行的代码不同。在网站`foo.domain.com` 上,您将无法编辑`bar.domain.com` 上的cookie。参见 [其他](http://stackoverflow.com/questions/117240/is-it-possible-to-delete-subdomain-cookies) [类似](http://stackoverflow.com/questions/6525484/deleting-cookies -in-other-subdomains) [问题](http://stackoverflow.com/questions/3923285/how-to-remove-main-domain-cookie-from-sub-domain) 如果你不相信。 (2认同)