javascript - 无法使用 javascript 删除 cookie?

标签 javascript cookies

我想为我的所有页面使用一个 cookie,我也想为所有页面更新这个 cookie。它将在布局中用作主题值。

我使用 javascript 方法创建了一个名为 theme 的 cookie;

$.cookie("theme", "skin-blue");

并通过使用检查cookie是否保存;

document.cookie "theme=skin-blue"

当我想通过使用它来删除 cookie 时返回 false;

$.removeCookie("theme") false

你能帮我解决这个问题吗?反正有删除或清除或cookies吗?谢谢。

注意:此方法适用于一页,但不适用于所有页面。在其他页面中,它会创建同名的新 cookie,因此我无法更新相关的 cookie。

最佳答案

在 JavaScript 中删除 cookie 的标准方法是将 cookie 的值覆盖为空值,并将过期日期覆盖为已通过的日期。

示例: 假设您要删除的 cookie 名为 access_token。下面一行应该删除 cookie,如果 cookie 的域在同一个域中,那么这应该有效。我们假设 access_token cookie 在 example.com 域中。

// Deleting access_token cookie with implicit domain.
document.cookie = "access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC;"

但是,如果 cookie 的域在不同的域或子域中,上面的行将不起作用。让我更准确。这次,我们假设 access_token cookie 位于 .example.com 子域 (注意 example.com 前面的点)。然后,上面的行应该不起作用,因此 cookie 不会被删除。

解决方案,对于cookie在不同域/子域的情况,则在删除cookie时必须明确指定域/子域名

// Deleting access_token cookie, with explicit domain/sub-domain
document.cookie = "access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.example.com/"

关于javascript - 无法使用 javascript 删除 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27917245/

相关文章:

javascript - Firebase 身份验证模拟器因 IDP 失败

javascript - 使用 lua.vm.js 在 javascript 中迭代 Lua 表

ruby-on-rails - 删除 Rails 中以特定字符串开头的 cookie

php - 为 www. 取消设置早于特定日期的 Cookie。和非 www 域

authentication - 在两个网站之间共享身份验证

cookies - .NET Core 2.0 Cookie 事件 OnRedirectToLogin

javascript - 隐藏具有显示属性或左/上的元素?

javascript - 使用 Knockout 将数据从数据库加载到 DropDownList

javascript - Ajax Json 属性未定义

python - 如何设置/删除跨域cookie?