首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaScript删除所有cookies?

如何使用JavaScript删除所有cookies?
EN

Stack Overflow用户
提问于 2009-02-27 15:32:02
回答 3查看 209.6K关注 0票数 75

我已经编写了在JavaScript中保存cookies的代码。现在,我需要清除cookie,而不管我分配的值是什么。

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

我的示例代码:

代码语言:javascript
复制
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呢?

当我在when服务器上测试代码时,会出现问题吗?

EN

回答 3

Stack Overflow用户

发布于 2010-03-11 08:41:26

删除浏览器cookie没有100%的解决方案。

问题是cookies不仅通过它们的关键字“名称”唯一地标识,而且还通过它们的“域”和“路径”来唯一标识。

在不知道cookie的“域”和“路径”的情况下,您无法可靠地删除它。这些信息不能通过JavaScript的document.cookie获得。它也不能通过HTTP Cookie头获得!

但是,如果您知道cookie的名称、路径和域,则可以通过在过去设置一个带有过期日期的空cookie来清除它,例如:

代码语言:javascript
复制
function clearCookie(name, domain, path){
    var domain = domain || document.domain;
    var path = path || "/";
    document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;
};
票数 83
EN

Stack Overflow用户

发布于 2012-06-19 14:39:34

这是我们在应用程序中使用的一个函数,它工作得很好。

删除cookie:无参数方法

代码语言:javascript
复制
function clearListCookies()
{   
    var cookies = document.cookie.split(";");
    for (var i = 0; i < cookies.length; i++)
    {   
        var spcook =  cookies[i].split("=");
        deleteCookie(spcook[0]);
    }
    function deleteCookie(cookiename)
    {
        var d = new Date();
        d.setDate(d.getDate() - 1);
        var expires = ";expires="+d;
        var name=cookiename;
        //alert(name);
        var value="";
        document.cookie = name + "=" + value + expires + "; path=/acc/html";                    
    }
    window.location = ""; // TO REFRESH THE PAGE
}

编辑:这将通过将cookie设置为昨天的日期来删除cookie。

票数 9
EN

Stack Overflow用户

发布于 2013-08-13 22:04:29

为什么使用新日期而不是静态UTC字符串?

代码语言:javascript
复制
    function clearListCookies(){
    var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++){   
            var spcook =  cookies[i].split("=");
            document.cookie = spcook[0] + "=;expires=Thu, 21 Sep 1979 00:00:01 UTC;";                                
        }
    }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/595228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档