无法使用javascript删除cookie?

时间:2015-01-13 07:52:06

标签: javascript cookies

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

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

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

使用;

检查cookie是否已保存
document.cookie "theme=skin-blue"

当我想删除cookie时,返回false;

$.removeCookie("theme") false

你能帮我解决这个问题吗?有没有删除或清除或cookie?感谢。

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

2 个答案:

答案 0 :(得分:0)

您可以将Cookie日期设置为已过期,例如:

function removeCookie (name) {
    document.cookie = name + '=;expires=Mon, 01 Mar 1980 00:00:01 GMT;';
}

所以只做removeCookie("theme");

会删除您的主题Cookie

答案 1 :(得分:0)

在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时明确指定域/子域名。< / p>

// 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/"