2013-08-28 34 views
19

JS dosyasımda iki tane çerez var ve bunları kaldırmak istiyorum.JQuery kullanarak tanımlama bilgisi kaldırılıyor

ben kod aşağıda denedi ama ben de boş çerezleri için aşağıda çalıştılar

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

çalışmıyor, ancak bu da işe yaramıyor. Için çerez kullanıyor hangi yolu bağlı olabilir yardım

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

çerez eklentisi dahil mi? jQuery varsayılan olarak 'cookie' ve' removeCookie' yöntemlerine sahip değildir. – kapa

cevap

41

için

teşekkürler. Chrome geliştirici araçlarına gidip Kaynaklar> Çerezler> Yol'un altındaki yol sütununu kontrol ederseniz.

enter image description here

Sen yoluna yerine /Home/ jenerik / kullanıyor olabilir. Kodu bir denemeden ver. jQuery null değeri ayarlamak ile

çerez silmek için:

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

Belirli bir sayfayı kullanıyorum örn. Ana sayfa bu yüzden –

+0

'daki Ev'i kullanın. Krom geliştirici araçlarını kontrol ettiniz mi? Kaynaklar> Çerezler> Yol? – Mark

+0

evet, bu da/Home/ –

5

sen (null "adı") $ .cookie denedin mi; benim için çalışıyor Ne

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

yes $ .cookie ("name", null); –

+0

$ .removeCookie – Ravia

+0

deneyin @Ravia için ipucu ... harika çalıştı! cevap olarak işaretlenmelidir –

2

çıkarmadan önce null çerez ayardır: $.cookie("filter", null); $.removeCookie("filter);

0

ben jquery sürümü 1.7.1 ve jquery çerez sürümü ile aynı sorunu yaşıyordu 1.4.1

Bu beni çıldırtıyordu, ben de kaynak koduna dalmaya karar verdim ve neyin yanlış olduğunu anladım. İşte

fonksiyon kontrolleri kurabiye seçenekleri hesaba itiraz almaz varsa ne zaman Gördüğünüz gibi $ .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); 
}; 

tanımıdır. Yani, eğer tanımlamadan farklı bir yol üzerindeyseniz, işlevi kaldırmaya çalışırsınız.

Birkaç Çözümleri:

Yükseltme jQuery Çerezler. En son sürüm bu akıl kontrolünü bile yapmıyor.

ya da size bu eklemek

hazır belgelemek

$.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); 
}; 

veya kaldırma çerezleri böyle bir şey yapmak zaman:

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