javascript - 无法从 javascript 删除 cookie

标签 javascript cookies

我在外部网站上,我正在尝试通过 javascript 删除 cookie。

我在控制台中执行了以下操作:

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";
    }
}

deleteAllCookies()

应该将文档 cookie 设置为 1970 年过期

但在那之后,我打电话

document.cookie.split(";")

cookie 似乎没有受到影响。有什么想法吗?

PS:上面的代码来自stackoverflow Clearing all cookies with JavaScript

最佳答案

您的 Cookie 很可能不会被删除,因为当您设置新值时,它必须与您尝试删除的原始 Cookie 的路径和域相匹配。

换句话说:

 document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=[something];"

该“某物”值需要与现有 cookie 的设置保持一致。

JS 调试器可能不会为您提供有关路径和域的详细信息,但如果您在 Chrome-> 设置或类似面板中查找现有 cookie 的值,那么您不匹配的路径和域就会变得很明显在 Firefox/Safari/IE 中。

请告诉我这是否有帮助。

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

相关文章:

java - 无法读取 cookie javascript

cookies - 两个 ChromeApp WebView 是否可以拥有不同的 cookie 集?

java - 如何在 Java 中将 cookie 从 HttpURLConnection 传递到 WebDriver?

javascript - 将 Ajax 与 Cookie 结合使用

javascript - 更新 JavaScript 中的表单字段

javascript - 在将数据插入数据库之前验证数据

javascript - 如何使用非零索引初始化 Javascript 数组

php - 如何在 PHP 中记住我(cookie)

javascript - 存储原始表单值以供以后比较、对象或隐藏字段

javascript - Darkroomjs 图像裁剪发布到 PHP