我在外部网站上,我正在尝试通过 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/