2013-08-28 26 views
19

Mam dwa pliki cookie w moim pliku JS i chcę je usunąć.usunąć Cookie za pomocą jquery nie działa

Próbowałem kodu poniżej, ale to nie działa

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

Próbowałem również poniżej dla zerowych ciasteczek, ale nie jest to też działa.

Dzięki za pomoc

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

Czy dołączonego wtyczki Cookie? jQuery nie ma domyślnie metod "cookie" i "removeCookie". – kapa

Odpowiedz

41

może to zależeć od tego, co ścieżka Twój plik cookie jest używany. Jeśli masz narzędzia do programowania Chrome i sprawdź kolumnę ścieżki w sekcji Zasoby> Pliki cookie> Ścieżka.

enter image description here

może być używany ogólny / na swojej drodze zamiast /Home/. Podaj poniższy kod i spróbuj.

Aby usunąć plik cookie z jQuery ustawić wartość NULL:

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

Używam konkretnej strony np. Strona główna, więc użyj Home w tym –

+0

Czy sprawdziłeś narzędzia deweloperów chrome? Zasoby> Pliki cookie> Ścieżka? – Mark

+0

tak sprawdź, to również pokazuje/Home/ –

5

Próbowałaś $ .cookie ("nazwa", null);

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

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

+0

spróbuj $ .removeCookie – Ravia

+0

dzięki @Ravia za podpowiedź ... zadziałało świetnie! powinien być oznaczony jako odpowiedź –

2

Co działa dla mnie jest ustawienie cookie NULL przed wyjęciem go: $.cookie("filter", null); $.removeCookie("filter);

0

miałem ten sam problem z wersja jQuery 1.7.1 i jquery cookies wersji 1.4.1

To doprowadzało mnie do szaleństwa, więc postanowiłem zagłębić się w kod źródłowy i zorientowałem się, co jest nie tak.

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

Jak widać podczas gdy ciasteczko istnieje kontrole funkcyjne nie bierze opcje sprzeciw pod uwagę. Więc jeśli jesteś na innej ścieżce niż ciasteczko, które próbujesz usunąć, funkcja zawodzi.

Kilka Solutions:

Upgrade Jquery Cookies. Najnowsza wersja nawet nie sprawdza tego stanu.

lub dodać to do ciebie dokument gotowy

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

lub podczas usuwania ciasteczek zrobić coś takiego:

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