一、js删除本地cookie无法删除
- 今天发现自己真的蠢爆了!
以下为cookie定义:
1.设置Cookie的key
2.设置Cookie的key-value值
3.过期时间-自定义(一般在删除的时候) expires
4.路径(path)(一般定义 path=/)
5.域(domain)
- 在chrome console下尝试删除、设置cookie时,发现可以同时存在多个同名同值cookie。
而且我们只能删除掉自己刚设定的cookie,不能删除,网站给我设定的cookie。以下为网上找的方法:
function setCookie(name, value, exdays) {
var date_time = new Date();
date_time.setTime(date_time.getTime() + (exdays*24*60*60*1000));
// date_time.setTime(date_time.getTime()+5); 这句意思为5秒后删除cookie
var expires = "expires="+d.toGMTString();
document.cookie = name + "=" + value + "; " + expires;
-
显然上面个方法我试了很多次实在是没成功
然后想到了,我当前chrome在该页面设置的cookie是不是不是和网站给我设置的cookie在一个路径下
1.2 解决问题
然后尝试修改,这次在后台页面直接修改的js:
var u_name = $(this).prev().text() // 这个是我存的用户名
var date_time = new Date();
date_time.setTime(date_time.getTime()+1);
var expires= "expires="+ date_time.toGMTString()+";path=/"; # 单斜杠 ‘/’表示项目当前根路径
console.log("username"+"="+$(this).prev().text()+';'+expires);
document.cookie = "username"+"="+u_name+';'+expires;
-
没错就是差的那个 ' path=/' 属性
说到这你也可以理解了,为什么在console下可以出现同名,同值cookie。
而加上 path 属性,浏览器就可以找到是哪一个路径下的cookie 去精确操作了