2013-10-19 17 views
12

Próbuję zrobić, gdy użytkownik odwiedza stronę test.html, aby usunąć pliki cookie ze stron, które wcześniej odwiedził, np. Test1.html, test2.html itp. I ustawić nowy plik cookie .Usuń WSZYSTKIE Ciasteczka z jquery i ustaw nowe

Czy istnieje prostszy sposób na usunięcie wszystkich wcześniej ustawionych plików cookie na raz (mam 100 stron, aby zadeklarować jeden po drugim za każdym razem) z jquery?

Nie znam żadnego innego sposobu oprócz usunąć jeden po drugim, a następnie ustawić nowe:

$.cookie('test1', 'test1', { expires: -1, path: '/' });//deleting cookies from test1.html 
$.cookie('test2', 'test2', { expires: -1, path: '/' });//deleting cookies from test2.html 

$.cookie('test', 'test', { expires: 30, path: '/' });//setting new cookies 

Dzięki

Odpowiedz

19

Po transakcji jquery-cookie spec:

1) Zadzwonisz do $ .cookie (), który powinien zwrócić wszystkie pliki cookie na bieżącej stronie.
2) Tylko iterację i usunąć jak poniżej:

var cookies = $.cookie(); 
for(var cookie in cookies) { 
    $.removeCookie(cookie); 
} 

Uwaga: podczas usuwania plików cookie, należy przejść do opcji Dokładna samej ścieżce, domen i bezpieczne, które zostały użyte do ustawienia cookie, chyba że” poleganie na domyślnych opcjach.

+0

podziękowaniami you..this pracował dla mnie .. – yas

+0

ale mam pytanie dotyczące swojej notatce. Po prostu skopiowałem-wkleiłem i zadziałało to dla mnie, ale powiedziałeś, że muszę podać dokładnie tę samą ścieżkę, domenę i bezpieczne opcje, które zostały użyte do ustawienia pliku cookie. To mnie zdezorientowało ... ponieważ poprosiłem o rozwiązanie, aby usunąć WSZYSTKIE ciasteczka na raz. – yas

+0

Podczas modyfikowania/usuwania plików cookie ze względów bezpieczeństwa przeglądarki należy podać poprawne poświadczenia. Głównym powodem jest to, aby nie zakłócać ciasteczek innych stron na stronie. Na przykład, jeśli pracujesz nad widgetem na yahoo.com i zdecydujesz się usunąć wszystkie pliki cookie, nie wpłynie to na inne widżety na stronie, chyba że używają tych samych poświadczeń. Zwykle programiści ustawiają wszystkie pliki cookie na stronie przy użyciu tych samych ustawień, więc ta metoda powinna działać w większości przypadków. – megawac

6
var cookies = document.cookie.split(";"); 
for(var i=0; i < cookies.length; i++) { 
    var equals = cookies[i].indexOf("="); 
    var name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i]; 
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
} 

zaczerpnięte z pytaniami How to delete all cookies with jquery

0

Należy pamiętać, że jquery-Cookie wg planu nas nie jest już rozwijany, wyparte przez JS Cookie