3

JS Cookies 移除 cookie,未定义

嗨,伙计们,我试图从域中删除一个 cookie,但我不能,控制台返回未定义。

当我登录时,cookie 在 .dev.books.com 中设置,但之后 URL 更改为 platform.dev.books.com 并保留相同的 cookie。我要删除的 cookie 的名称是 bookId,这是我的尝试:

Cookies.set('bookId', ' ');

但要更改 cookie 值,请使用域 platform.dev.books.com 创建一个新的

如果我使用

Cookie.remove('bookId') 

控制台返回未定义

谢谢,任何帮助都会有所帮助

4

4 回答 4

3

您可以取消设置 cookie 并将过期标头时间设置为过去的日期

document.cookie = "bookId=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
于 2016-06-30T05:18:14.257 回答
2

这真的取决于环境,您可能必须设置与浏览器中存储的cookie域匹配的域属性

Cookies.remove('name', { domain: 'subdomain.site.com' });

如果网站托管在反向代理或负载平衡器后面,您可能会遇到不匹配的域。

确保使用 fiddler 检查 http 标头的最佳方法。

于 2017-04-05T17:26:52.467 回答
1
Cookie.remove('bookId') 

^^这行不通。您始终需要包含当前页面的相对路径。像这样:

Cookies.remove('name', { path: '/', domain: '.yourdomain.com' })

'/' 代表根页面。

于 2020-05-11T17:16:32.190 回答
0

删除一个对当前页面路径有效的cookie:

Cookies.set('name', 'value', { path: '' })
Cookies.remove('name') // fail!
Cookies.remove('name', { path: '' }) // removed!

重要的!删除 cookie 并且您不依赖默认属性时,您必须传递用于设置 cookie 的完全相同的路径和域属性:

Cookies.remove('name', { path: '', domain: '.yourdomain.com' })

Note: Removing a nonexistent cookie neither raises any exception nor returns any value.

我建议您始终尝试阅读您使用的任何软件包的自述文件,稍后谢谢我,哈哈。 https://www.npmjs.com/package/js-cookie

于 2022-02-12T16:01:41.083 回答