如何使用JavaScript删除所有cookie?

我已经编写了将Cookie保存在JavaScript中的代码。现在,无论我分配的值如何,都需要清除cookie。


是否有任何脚本模块可删除Javascript生成的所有cookie ?


我的示例代码:

document.cookie = 'ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'


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 readCookie(name) {

    var nameEQ = name + "=";

    var ca = document.cookie.split(';');

    for(var i=0;i < ca.length;i++) {

        var c = ca[i];

        while (c.charAt(0)==' ') c = c.substring(1,c.length);

        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

    }

    return null;

}


function eraseCookie(name) {

    createCookie(name,"",-1);

}

我还能如何清除所有cookie?


当我在网络服务器上测试代码时会出现任何问题吗?


繁华开满天机
浏览 562回答 3
3回答

繁星coding

从表面上看,它看起来还不错-如果您调用eraseCookie()从中读取的每个cookie document.cookie,那么所有cookie都将消失。尝试这个:var cookies = document.cookie.split(";");for (var i = 0; i < cookies.length; i++)&nbsp; eraseCookie(cookies[i].split("=")[0]);所有这些都带有以下警告:JavaScript 无法删除设置了HttpOnly标志的cookie 。

慕尼黑5688855

没有删除浏览器Cookie的100%解决方案。问题在于,cookie不仅通过其键“名称”而且还通过其“域”和“路径”来唯一标识。如果不知道Cookie的“域”和“路径”,就无法可靠地删除它。无法通过JavaScript的获得此信息document.cookie。也无法通过HTTP Cookie标头使用!但是,如果您知道Cookie的名称,路径和域,则可以通过设置一个具有过期日期的空Cookie来清除它,例如:function clearCookie(name, domain, path){&nbsp; &nbsp; var domain = domain || document.domain;&nbsp; &nbsp; var path = path || "/";&nbsp; &nbsp; document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript