2013-11-01 38 views
0

我有一個小小的演示頁面,根據不同的用戶cookie顯示網站的效果。 然後,我設置的一些divclick()功能,使用它提供2個功能插件jquery.cookie.js:我叫$.removeCookie()使用javascript/jQuery刪除cookie

$.cookie('name', 'val') 
$.removeCookie('name') 

後,我打電話window.open('new page'),因爲我需要去的內容。但httpliveheader總是顯示它並沒有刪除有問題的cookie。

+0

在'$ .removeCookie'後面加入一個警告,以確保它被調用時沒有任何錯誤。 –

+0

另請參閱:http://stackoverflow.com/questions/3671659/jquery-delete-cookies –

+2

你能提供你的代碼和/或鏈接到JSFiddle嗎? –

回答

-1

//例如:

document.cookie = "cookie_name=" + encodeURIComponent(cookie_value) + 

          "; expires=" + expires.toGMTString() + 

          "; path=/"; 

需要設置PATH。

+0

路徑在Cookie中是可選的https://developer.mozilla.org/en-US/docs/Web/API/document.cookie另外OP是使用jQuery cookie插件,知道如果你不設置路徑如何處理它 – charlietfl

+0

我知道,你不能使用jQuery cookie,需要重寫。你可以看看這裏http://www.quirksmode.org/js /cookies.html,關於cookie中的路徑 – Arnold

+0

確定你可以... OP只是沒有正確使用它 – charlietfl

0

好的,我發現它,這是因爲我的後端代碼和前端JS所設置的Cookie處於不同的路徑。

我的Java Spring MVC的控制器具有的/ mypath中/布拉赫/代碼我只是做了

httpServletResponse.addCookie(新的Cookie( 「東西」, 「東西」))的訪問路徑;

這原來默認的路徑,其中的代碼坐鎮下,即/ mypath中/布拉赫/

但JS設置類似$ .cookie(「東西」,「someValue中」),它去根。這就是爲什麼我在httpLiveHeader轉儲中看到2個不同的值。不幸的是,路徑的東西是由瀏覽器控制的,所以它不會顯示在liveheader轉儲上。在我檢查了mozilla中的「刪除cookie」窗口後,我才發現這一點。