一、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 去精確操作了