Chcę używać jQuery do usuwania plików cookie; Próbowałem tego:
$.cookie('name', '', { expires: -1 });
Ale kiedy odświeżam stronę, plik cookie nadal tam jest:
alert('name:' +$.cookie('name'));
Czemu?
Chcę używać jQuery do usuwania plików cookie; Próbowałem tego:
$.cookie('name', '', { expires: -1 });
Ale kiedy odświeżam stronę, plik cookie nadal tam jest:
alert('name:' +$.cookie('name'));
Czemu?
Odpowiedzi:
Aby usunąć plik cookie z JQuery, ustaw wartość na null:
$.cookie("name", null, { path: '/' });
Edycja: Ostatecznym rozwiązaniem było jawne określenie pathwłaściwości przy każdym dostępie do pliku cookie, ponieważ OP uzyskuje dostęp do pliku cookie z wielu stron w różnych katalogach, a zatem domyślne ścieżki były różne (nie zostało to opisane w pierwotnym pytaniu). Rozwiązanie zostało odkryte w dyskusji poniżej, co wyjaśnia, dlaczego ta odpowiedź została przyjęta - mimo że nie jest poprawna.
W przypadku niektórych wersji pliku cookie jQ powyższe rozwiązanie ustawi plik cookie na ciąg znaków null. W ten sposób nie usuwa pliku cookie. Zamiast tego użyj kodu zgodnie z sugestią poniżej.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}, co znajduje się w funkcji przetwarzania, więc mają wykonywać to samo. (parametry są (name, value, options))
pathw opcjach oba polecenia, ponieważ domyślnie jest to ścieżka bieżącej strony. Przetestuj, ustawiając katalog główny swojej domeny we wszystkich miejscach, w których plik cookie jest odczytywany i zapisywany:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')robi.
Możesz spróbować tego:
$.removeCookie('the_cookie', { path: '/' });
Możesz także usunąć pliki cookie bez korzystania z wtyczki jquery.cookie:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
jest to problem niezrozumienia plików cookie. Przeglądarki rozpoznają wartości plików cookie nie tylko dla kluczy, ale także porównują ścieżkę opcji i domenę. Dlatego przeglądarki rozpoznają inną wartość, która z plików cookie ma ten klucz „nazwa” z opcją ustawienia serwera (ścieżka = „/”; domena = „moja_domena.com”), a klucz to „nazwa” bez opcji.
Spróbuj tego
$.cookie('_cookieName', null, { path: '/' });
{Ścieżka: „/”} wykona zadanie za Ciebie
U mnie zadziałało tylko wtedy, gdy pathbyło ustawione tj .:
$.cookie('name', null, {path:'/'})
To co robisz jest poprawne, problem jest gdzie indziej, np. Plik cookie jest w jakiś sposób ponownie ustawiany przy odświeżaniu.