Chcę używać JQuery do usuwania plików cookie; Próbowałem tojquery, usuń pliki cookie
$.cookie('name', '', { expires: -1 });
Potem odświeżyć stronę i ciasteczko jest nadal istnieje:
alert('name:' +$.cookie('name'));
Dlaczego? Dzięki
Chcę używać JQuery do usuwania plików cookie; Próbowałem tojquery, usuń pliki cookie
$.cookie('name', '', { expires: -1 });
Potem odświeżyć stronę i ciasteczko jest nadal istnieje:
alert('name:' +$.cookie('name'));
Dlaczego? Dzięki
Aby usunąć pliki cookie z jQuery, należy ustawić wartość null:
$.cookie("name", null, { path: '/' });
Edit: Ostateczne rozwiązanie było jednoznacznie określić właściwość ilekroć dostępem cookie path
, bo OP dostęp cookie z wielu stron w różnych katalogach, a więc domyślne ścieżki były różne (nie było to opisane w pierwotnym pytaniu). Rozwiązanie zostało odkryte w poniższej dyskusji, co wyjaśnia, dlaczego ta odpowiedź została przyjęta - mimo że nie jest poprawna.
Dla niektórych wersji jQ cookie powyższe rozwiązanie ustawi plik cookie na ciąg znaków null. W ten sposób nie usuwając pliku cookie. Zamiast tego użyj kodu sugerowanego poniżej.
To, co robisz, jest poprawne, problem występuje gdzie indziej, np. plik cookie jest ponownie ustawiony w jakiś sposób podczas odświeżania.
Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. –
Dla tej odpowiedzi, co mówię, jest to, że OP robi to we właściwy sposób. Kopiowanie-wklejanie kodu OP będzie zbędne, a dodanie kolejnego kodu będzie mylące dla czytelnika. Można przewijać i zobaczyć, co robi OP, jest to "istotna część" tutaj. Jeśli jednak uważasz, że lepiej będzie coś dodać (podobno niektórzy ludzie, zrób to ... Jeden z nich nawet nie głosował na moją odpowiedź :)), po prostu edytuj odpowiedź i napraw to. Pozdrawiam – aularon
Problem z linkami polega na tym, że mają skłonność do "zgnilizny" - zmieniają się, poruszają się, znikają (tak na wszelki wypadek - twój link jest już martwy!). Dlatego wolimy cytować odpowiedni tekst z linku wraz z nim, więc twoja odpowiedź będzie samodzielna (zobacz także http://meta.stackexchange.com/questions/8231/are-answers-that-just- zawierają-linki-gdzie indziej-naprawdę-dobre-odpowiedzi) –
jest to problem niezrozumienia ciasteczka. Przeglądarki rozpoznają wartości plików cookie, a nie tylko klucze, a także porównują ścieżkę opcji domeny &. Dlatego przeglądarki rozpoznają inną wartość, jaką są wartości cookie, którym jest "nazwa" z opcją ustawienia serwera (ścieżka = "/"; domena = "moja_domena.com"), a klucz to "nazwa" bez opcji.
Spróbuj
$.cookie('_cookieName', null, { path: '/' });
przycisk {ścieżkę: '/'} zrobić dla ciebie zadanie
Można również usunąć ciasteczka bez użycia jquery.cookie wtyczki:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
ty można spróbować:
$.removeCookie('the_cookie', { path: '/' });
Yah .. Mam się dobrze z tym – Cataclysm
Podczas korzystania z subdomeny, możesz również określić ją. Zwłaszcza, że może być wymagany okres na początku nazwy domeny (.www.example.com). –
Uwaga, to nie działało dla nas, gdy kod wymagał przejścia do innej funkcji z dowolnego powodu. $ .cookie ('name', null) jak wyżej wydaje się być bardziej niezawodny. Ten plik cookie usuwania może jednak działać dla niektórych osób. – Ligemer
pracował dla mnie tylko gdy path
ustalono, tj:
$.cookie('name', null, {path:'/'})
Downvoting powoduje, że kopiujesz i wklejasz moją odpowiedź jako swoją –
@OttoKanellis, więc sugeruję też przemycenie zaakceptowanej odpowiedzi (ponieważ była ona edytowana po mojej odpowiedzi) i pomijam również twoją odpowiedź (ponieważ nie podkreśliłeś wagi ** ścieżki ** parametr)! – Andron
@ Andron, Podałem właściwą odpowiedź, to takie proste –
Ale od źródła tutaj: http://plugins.jquery.com/files/jquery.cookie.js. txt: 'if (value === null) {value = ''; options.expires = -1;}', to co znajduje się wewnątrz funkcji przetwarzania, więc mają one wykonywać to samo. (parametrami są '(nazwa, wartość, opcje)') – aularon
Chadwick> dzięki za pomoc, ale to nie zadziałało – user319854
Czy kod ustawień cookie i kod testowy znajdują się na tej samej stronie? Jeśli nie, musisz jawnie ustawić "ścieżkę" w opcjach dla obu poleceń, ponieważ domyślnie jest to ścieżka do bieżącej strony. Przetestuj, ustawiając katalog główny swojej domeny, zarówno we wszystkich miejscach, w których plik cookie jest odczytywany i zapisywany: '$ .cookie ('name', value, {path: '/'})' – Chadwick