0

我正在尝试使用此功能删除 cookie,但它不起作用..

deleteAllCookies();

function deleteAllCookies() {
    var cookies = document.cookie.split(";");

    for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i];
        var eqPos = cookie.indexOf("=");
        var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
        document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
}

为什么 cookie 在我的浏览器中,即使在我激活该功能之后...

4

3 回答 3

1
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

来源:http ://www.quirksmode.org/js/cookies.html

于 2012-06-14T13:57:02.973 回答
0

在 JavaScript 中删除 cookie 的标准方法是将 cookie 的值覆盖为空值,并将过期日期更改为过去的日期。像这样的东西。

例如,这应该删除acctokencookie。

document.cookie = "acctoken=; expires=Thu, 01 Jan 1970 00:00:00 UTC;"

如果您的 cookie 位于不同的域或子域中,那么您必须在覆盖的 cookie 中明确指定域/子域。

document.cookie = "acctoken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=example.com"

更多,此答案中的上下文。

于 2019-07-12T08:28:34.980 回答
-1
var cookies = document.cookie.split(";");

for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    var eqPos = cookie.indexOf("=");
    var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
    document.cookie = cname + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT ; path = /;";

上面的答案是正确的,但不要忘记添加路径

于 2018-10-07T13:32:07.850 回答