wake-up-neo.net

Javascript-Cookie ohne Ablaufdatum

Ich möchte einen Cookie einrichten, der niemals abläuft. Wäre das überhaupt möglich?

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

Ich möchte das Datum nicht wirklich groß machen, ich frage mich nur, ob es einen Wert für den Parameter "Expires" in dem Cookie gibt, der angibt, dass der Cookie niemals abläuft. 

Vielen Dank.

106
Jose Vega

Nee. Kann nicht gemacht werden Der "Weg", dies zu tun, macht das Verfallsdatum wie 2030.

133

Es gibt keine Syntax für das, was Sie möchten. Wenn die Einstellung nicht abläuft, läuft das Cookie am Ende der Sitzung ab. Die einzige Möglichkeit ist, einen beliebig großen Wert auszuwählen. Beachten Sie, dass einige Browser Probleme mit Datumsangaben nach 2038 haben (wenn die Unix-Epoch-Zeit einen 32-Bit-Integerwert überschreitet).

94
Jamie

Sie können dies als Beispiel für Mozilla docs tun:

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

P.S 

Natürlich wird es ein Problem geben, wenn die Menschheit Ihren Code in der ersten Minute des Jahres 10000 noch verwendet :):

46
Nimir

Alle Cookies verfallen gemäß dem Cookie Spezifikation . Der maximal zulässige Wert ist 

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

Die maximale Lebensdauer der Cookies ist also 

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

Sie können möglicherweise ein Cookie zu einem Ablaufdatum von einem Monat oder etwas setzen und dann das Cookie jedes Mal neu zuweisen, wenn der Benutzer die Website erneut besucht

8
Liam Martens

Wenn Sie kein Ablaufdatum festlegen, läuft das Cookie am Ende der Benutzersitzung ab. Ich empfehle, das Datum direkt vor der Unix-Epoche zu verwenden, wenn eine 32-Bit-Ganzzahl übergeben wird. Um dies in den Cookie zu setzen, würden Sie document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC; verwenden, vorausgesetzt, dass randomCookie der von Ihnen gesetzte Cookie ist und true der jeweilige Wert ist.

8

DU KANNST NICHT. Es gibt keinen exakten Code zum Setzen eines Cookies für immer, aber ein alter Trick wie current time + 10 years

Nur ein Hinweis, dass alle Daten außerhalb von January 2038 für die Cookies (32-Bit int) zum Scheitern verurteilt sind, werden sofort gelöscht. Wünschen Sie sich ein Wunder, dass dies in naher Zukunft behoben wird. Für 64-Bit int sind Jahre um 2110 sicher. Im Laufe der Zeit ändern sich Software und Hardware und passen sich möglicherweise nie an ältere (die Dinge, die wir jetzt haben) an. Bereiten Sie also das jetzt auf das zukünftige vor.

Siehe Jahr 2038 Problem

1
rhavendc

Wenn Sie die Daten nur vom Client aus lesen möchten, können Sie den lokalen Speicher verwenden, der nur gelöscht wird, wenn der Cache des Browsers gelöscht wird.

1
jfhfhf839

Sie können einen Cookie niemals enden lassen, indem Sie ihn auf ein beliebiges Datum plus ein weiteres als das aktuelle Jahr setzen. 

var d = new Date();    
document.cookie = "username=John Doe; expires=Thu, 18 Dec " + (d.getFullYear() + 1) + " 12:00:00 UTC";
0
Jak