2013-08-28 72 views
19

我在我的JS文件中有兩個cookie,我想刪除它們。使用jquery刪除Cookie不工作

我曾嘗試下面的代碼,但它不工作

$.removeCookie('filter', { path: '/Home/' }); 
$.removeCookie('Pfilter', { path: '/Home/' }); 

我也曾嘗試下面的空餅乾,但這也不能正常工作。

感謝您的幫助

$.cookie('filter',null, { path: '/Home/' }); 
+3

已包含該Cookie插件? jQuery默認沒有'cookie'和'removeCookie'方法。 – kapa

回答

41

這可能取決於哪條路徑您的Cookie使用。如果您獲取了Chrome開發人員工具並檢查資源> Cookie>路徑下的路徑列。

enter image description here

你可能會使用你的路徑,而不是/Home/通用/。嘗試下面的代碼。

要刪除Cookie使用jQuery將值設置爲空:

$.removeCookie('filter', { path: '/' }); 
+0

我正在使用特定頁面,例如。首頁,請使用主頁 –

+0

您是否檢查過Chrome開發者工具?資源>餅乾>路徑? – Mark

+0

是的檢查,這也顯示/首頁/ –

5

你嘗試 $ .cookie( 「名」,NULL);

$.removeCookie('filter', { path: '/' }); 
+1

yes $ .cookie(「name」,null); –

+0

試試$ .removeCookie – Ravia

+0

感謝@Ravia的提示......它的工作真棒!應該標記爲答案 –

2

我什麼工作是刪除之前的Cookie設置爲null: $.cookie("filter", null); $.removeCookie("filter);

0

我在用jQuery 1.7.1版本和jQuery cookie版本相同的問題1.4.1

這讓我發狂,所以我決定深入源代碼,並找出錯誤的地方。

這裏是$ .removeCookie

$.removeCookie = function (key, options) { 
    if ($.cookie(key) === undefined) { // this line is the problem 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

的定義時,若存在功能檢查,它沒有考慮選項對象進去就可以看到。所以,如果你在不同的路徑上,你試圖刪除該功能將失敗。

一些解決方案:

升級Jquery Cookies。最新版本甚至沒有進行完整性檢查。

或將它添加到您記錄準備

$.removeCookie = function (key, options) { 
    if ($.cookie(key, options) === undefined) { // this line is the fix 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

或者刪除cookie做這樣的事情:

$.cookie('cookie-name', '', { path: '/my/path', expires:-1 });