Cookie JavaScript fără dată de expirare


Aș dori să setez un cookie care să nu expire niciodată. Ar fi chiar posibil acest lucru?

 document.cookie = "name=value; expires=date; path=path;domain=domain; secure";

Nu vreau să fac ca data să fie foarte mare, mă întreb doar dacă exista o valoare pentru parametrul expires al cookie-ului care să-i spună să nu expire niciodată.

Răspuns #1

Nu. Asta nu se poate face. Cel mai bun 'mod' de a face asta este pur și simplu să setezi data de expirare să fie în jurul anului 2100.

Editează

Începând cu august 2022, cookie-urile Chrome pot fi setate să expire doar după 400 de zile.

Răspunsul #2

Nu există o sintaxă pentru ceea ce vrei. Neetabilirea valorii 'expires' face ca cookie-ul să expire la sfârșitul sesiunii. Singura opțiune este să alegi o valoare arbitrar de mare. Fii conștient că unele browsere au probleme cu datele după 2038 (când timpul Unix depășește un int de 32 de biți).

Răspunsul #3

Poți să faci ca exemplul din documentația Mozilla:

 document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";

P.S

Desigur, va exista o problemă dacă omenirea va folosi încă codul tău în primul minut al anului 10000 :)

Răspunsul #4

Toate cookie-urile expiră conform specificației cookie-urilor, valoarea maximă pe care o poți seta este

 2^31 - 1 = 2147483647 = 2038-01-19 04:14:07

Deci durata maximă de viață a cookie-ului este

$.cookie('subscripted_24', true, { expires: 2147483647 });

Răspunsul #5

Ai putea eventual să setezi un cookie cu o dată de expirare de o lună sau ceva de genul și apoi să reasignezi cookie-ul de fiecare dată când utilizatorul vizitează din nou site-ul web

Răspunsul #6

Dacă nu setați o dată de expirare, cookie-ul va expira la sfârșitul sesiunii utilizatorului. Recomand să folosiți data imediat înainte ca timpul Unix să depășească un întreg pe 32 de biți. Pentru a pune asta în cookie, ați folosi document.cookie="randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;, presupunând că randomCookie este cookie-ul pe care îl setați și true este valoarea sa respectivă.