Osheep

时光不回头,当下最重要。

JavaScript操作Cookie总结

操作Cookie,这东西大家都经常用,大家可能都知道,Cookie和域名有关系,认为同一个Cookie Key 在一个域中只能存一份;其则不然;

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

很多在网上流传的JavaScript操作Cookie的方法,都几乎没有涉及到和当前path相关;
指定操作时,指定的path一致,才能操作成功;

以下为Vue+WebPack的写法,具体关注里面的方法体就好啦

getCookie(c_name) {//获取cookie
    if (document.cookie.length>0) {
        var c_start=document.cookie.indexOf(c_name + "=")
        if (c_start!=-1) {
            c_start=c_start + c_name.length+1
            var c_end=document.cookie.indexOf(";",c_start)
            if (c_end==-1) c_end=document.cookie.length
            return decodeURIComponent(document.cookie.substring(c_start,c_end))
        }
    }
    return "";
},
setCookie(cname, cvalue, exdays) {//设置cookie
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires+"; path=/";
}
//删除Cookie(isLogin是我这里用的一个Key)
this.setCookie('isLogin', '', -1);  

OK,这个是今天登陆退出吃亏的地方,特速来分享!

点赞