我正在尝试使用此功能删除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在我的浏览器中,即使我激活了该功能......
答案 0 :(得分: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);
}
答案 1 :(得分:0)
在JavaScript中删除Cookie的标准方法是将Cookie的值覆盖为空值,并使日期过期为通过日期。这样的事情。
示例,这应删除acctoken
cookie。
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"
更多,answer中的上下文。
答案 2 :(得分:-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 = /;";
上面的答案是正确的,但不要忘记添加路径