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?
jquery
cookies
jquery-cookie
user319854
źródło
źródło
Odpowiedzi:
Aby usunąć plik cookie z JQuery, ustaw wartość na null:
$.cookie("name", null, { path: '/' });
Edycja: Ostatecznym rozwiązaniem było jawne określenie
path
wł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: '/' });
źródło
if (value === null) { value = '';options.expires = -1;}
, co znajduje się w funkcji przetwarzania, więc mają wykonywać to samo. (parametry są(name, value, options)
)path
w 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: '/' });
źródło: https://github.com/carhartl/jquery-cookie#readme
źródło
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;';
źródło
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.
źródło
Spróbuj tego
$.cookie('_cookieName', null, { path: '/' });
{Ścieżka: „/”} wykona zadanie za Ciebie
źródło
U mnie zadziałało tylko wtedy, gdy
path
było ustawione tj .:$.cookie('name', null, {path:'/'})
źródło
To co robisz jest poprawne, problem jest gdzie indziej, np. Plik cookie jest w jakiś sposób ponownie ustawiany przy odświeżaniu.
źródło