0

我前段时间写了一个使用 mootools 删除 cookie 的函数。效果很好。我现在正在尝试使用 js-cookie 库让它在 jQuery 中工作。我一直在努力让它工作大约 4 个小时,现在我开始把头撞在桌子上:(

function deleteAllCookies() {
console.log('got to delete all cookies');
var cookies = document.cookie.split(";");
console.log("cookie length"+cookies.length);
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;
    Cookies.remove(name, null);
    console.log("name is "+name);
}

}

因此它会找到两个 cookie 并正确获取名称,但它只会删除其中一个(第一个)。如果我再次运行它,它会删除第二个。任何想法我做错了什么。(我从 onmousedown 事件中调用该函数进行测试)

谢谢

4

1 回答 1

0

cookie 是否具有相同的名称但具有不同的属性?该规范没有为此定义行为,因此它是未定义的行为,每个浏览器都可以实现自己的行为。应该避免创建两个具有相同名称但不同属性的cookie,以防止发生这种惊人的结果。

此外,您的代码正在使用Cookies.remove(name, null). 从最新版本开始, js-cookie 中没有这样的 API ,您应该使用其中之一Cookies.remove(name, attributes)或只使用Cookies.remove(name).

您正在使用document.cookie. 没有必要这样做。你可以只使用Cookies.get(name).

于 2017-02-21T22:34:37.453 回答