解决浏览器无法删除cookie的问题

发布时间:2022-03-01 10:30:59 作者:yexindonglai@163.com 阅读(1804)

    今天遇到一个cookie的问题: 名叫username的,域为localhostcookie无法删除,导致用户登录以后无法退出。搞了半天终于发现问题所在:原来是我关于cookie的基础知识没搞清楚 。。。。

    Cookie不仅仅有名字和值两个属性,还有域(domain),过期时间(expires),路径(path)等属性。 其中,不同的域、不同的路径下可以存在同样名字的cookie。

    一般我们删除cookie的方法是用一个同样名字、过期时间为过去某个时候的Cookie覆盖之。 这时就一定要搞清楚你要删除的cookie的域和路径,Cookie域和路径要一样才能被覆盖。 否则产生的效果就是那个想要被删除的Cookie具有神奇的生命力,无法被清除~~~

    找到expires后设置为过期,切记设置domainpath,只有这两个参数跟你要删除的参数完全一样才能把它删除掉
    只要用以下的方式清除cookie就可以了:

    1. function deleteCookie(name) {
    2. let date=new Date();
    3. date.setTime(date.getTime()-10000); // 当前时间减去10000,确保已过期
    4. document.cookie=name+"=; domain=localhost; expire="+date.toGMTString()+"; path=/";
    5. }

    注意:domain一定要和设置时相同,如果在设置cookie时未指定 domain ,删除时也将domain设为空值,代码如下

    1. function deleteCookie(name) {
    2. let date=new Date();
    3. date.setTime(date.getTime()-10000); // 当前时间减去10000,确保已过期
    4. document.cookie=name+"=; domain=; expire="+date.toGMTString()+"; path=/";
    5. }

    关键字前端