1. 程式人生 > >刪除cookie刪不掉的問題

刪除cookie刪不掉的問題

文章轉自:

https://blog.csdn.net/swimming_in_it_/article/details/80290547

https://blog.csdn.net/huanshiwushuang/article/details/70172536

http://php.js.cn/blog/delete-cookie/

不知道能不能解決你的問題,但是我來說說我的經歷,昨天在用Yii做專案是刪除js 的cookie是遇到了問題在一個頁面生成的cookie時只能


在同一個頁面刪掉,在另一個頁面死活刪不掉,憑著哥執著的性格,哥折騰到12點,結果還是沒解決,坑爹啊!!後來我看到下面這篇文章


後http://www.cnblogs.com/gossip/archive/2011/12/06/2278282.html,才知道原來是cookie路徑的問題,然後通過火狐自帶的檢視


cookie功能<選項-----隱私------刪除個人cookie------在搜尋框中輸入cookie的名字,在下方你可以看到路徑>檢視到無法刪掉的那個


cookie檔案的路徑,然後在刪除cookie時將cookie的路徑加了進去果然刪除掉了。
但是,正當我沾沾自喜時,準備換個瀏覽器試下,坑姐夫呢!這是!!!,360極速瀏覽器怎麼還是刪不掉cookie,蛋疼啊!最後通過360極


速瀏覽器自帶的檢視cookie功能<選項-----高階設定------網頁內容-----內容設定------cookie---所有cookie和網頁資料------輸入你


的域名(我的是localhost),你就可以看到你的cookie了>發現他設定的cookie路徑和火狐不同,最後改了改刪除cookie的函式,終於兩個瀏


覽器都可以刪除了,噩夢終於結束了。附上我刪除cookie的函式最終版!雖然不太嚴謹     function deleteMyCookie2(name) {  
var date = new Date();
     date.setTime(date.getTime()-10000); //刪除一個cookie,就是將其過期時間設定為一個過去的時間
     document.cookie = name + "= ' ' " + "; expires=" + date.toUTCString()+";path="+"火狐上顯示的cookie路徑";
     document.cookie = name + "= ' ' " + "; expires=" + date.toUTCString()+";path="+"ie和360上顯示的cookie路徑";
 
 }
這個函式之所以可以成功解決ie、360極速、火狐的相容,是因為藍色字型的每一句對不同的瀏覽器來說都是正確的,且由於路徑不同的


cookie儘管名字相同但是不會相互覆蓋,所以剛好解決了相容問題。
最後我總結最好的辦法就是設定cookie是就把cookie的路徑設定上,然後刪除的時候用同樣的路徑就不存在相容的問題了。

 

刪除cookie把domain和path都加上

這是我刪除的重置百度的cookie

var name = "PSTM"; var date=new Date();
date.setTime(date.getTime()-10000);   document.cookie = name + "=11;domain=.baidu.com;path=/";