Ich setze ein Cookie mit JavaScript und es funktioniert gut, aber es dauert nicht die von mir angegebene Ablaufzeit. Es nimmt weiterhin Sitzungswert, unabhängig davon, was ich gebe, unten ist der Code, den ich von hier genommen habe
var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*60;
now.setTime(expireTime);
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = aaa+'='+sStr+';expires="+now.toGMTString()+";path=/';
Ich habe versucht, einen fest codierten Wert anzugeben, aber es wird immer noch als Sitzung im Chrome-Entwicklungstool angezeigt
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = aaa+'='+sStr+';expires="+tempExp+";path=/';
Irgendeine Idee, was ich falsch mache?
Wie überprüfen Sie die Ablaufzeit Ihres Cookies?
– Polin
31. Oktober 2012 um 9:52 Uhr
polin: Drücken Sie in Chrome F12 (alternativ gehen Sie zu Tools-> Developer Tools). Es öffnet sich der Rahmen unten, dort können Sie es überprüfen.
– Ameisenbiene
31. Oktober 2012 um 10:02 Uhr
Ich weiß, wie es kommt. Meine Frage ist, können Sie die Ablaufzeit sehen. Ich habe es mit console.log(document.cookie) versucht, aber dort können Sie das Cookie sehen, nicht die Ablaufzeit
– Polin
31. Oktober 2012 um 10:11 Uhr
Ja, in der Spalte „Läuft ab“ (nach der Pfadspalte) wird das Datum und die Uhrzeit angezeigt, wann das Cookie abläuft. In meinem Fall wird jedoch „Sitzung“ angezeigt, was bedeutet, dass sie abläuft, wenn ich den Browser schließe
– Ameisenbiene
31. Oktober 2012 um 11:02 Uhr
Polin
Ich habe die Zeit auf 1000 * 36000 eingestellt.
function display() {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*36000;
now.setTime(expireTime);
document.cookie="cookie=ok;expires="+now.toUTCString()+';path=/';
//console.log(document.cookie); // 'Wed, 31 Oct 2012 08:50:17 UTC'
}
Eine kleine Erklärung wäre nett, was macht der Code eigentlich und was bedeutet hier “1000*360000”?
– Esko
20. Januar 2021 um 10:59 Uhr
Beim Testen in localhost lehnte Firefox das Ablaufdatum ab, da SameSite nicht gesetzt ist und daher standardmäßig auf none gesetzt ist. Festlegen von document.cookie = ${YOUR_COOKIE_OR_WHATEVER};${THE_EXPIRE_TIME_OR_WHATEVER};SameSite=lax Nähte, um das Problem zu lösen.
+ bevor eine Variable nur den numerischen Wert eines Objekts zurückgibt. In diesem Fall, +date ist äquivalent zu d.valueOf()was auch der Wert ist, der von zurückgegeben wird date.getTime().
– Shaun Cockerill
1. Februar 2018 um 2:20 Uhr
Lucio Zambon
Ihr Browser ist möglicherweise so konfiguriert, dass er nur Sitzungscookies akzeptiert; In diesem Fall wird jede Ablaufzeit von Ihrem Browser in eine Sitzung umgewandelt. Sie können diese Einstellung Ihres Browsers ändern oder einen anderen Browser ohne eine solche Konfiguration ausprobieren
gabriele m
Ich verwende eine Funktion, um Cookies mit einer benutzerdefinierten Ablaufzeit in Tagen zu speichern:
// use it like: writeCookie("mycookie", "1", 30)
// this will set a cookie for 30 days since now
function writeCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
pmccaffrey6
Ich möchte Polins Antwort unterstützen und nur eine Sache hinzufügen, falls Sie immer noch nicht weiterkommen. Dieser Code funktioniert sicherlich, um eine bestimmte Ablaufzeit für Cookies festzulegen. Ein Problem, das Sie möglicherweise haben, ist, dass Sie Chrome verwenden und über “http://localhost…” oder “file://”, speichert Chrome keine Cookies. Die einfache Lösung dafür besteht darin, einen einfachen HTTP-Server zu verwenden (wie den HTTP-Server des Knotens, falls Sie dies noch nicht getan haben) und explizit als zu Ihrer Seite zu navigieren “http://127.0.0.1” In diesem Fall WIRD Chrome Cookies für die lokale Entwicklung speichern. Dies hat mich ein wenig aufgelegt, da Ihr Ablaufschlüssel, wenn Sie dies nicht tun, einfach den Wert “Sitzung” hat, wenn Sie ihn in der Konsole untersuchen oder in den Entwicklungstools.
10102500cookie-checkWie kann ich ein Cookie mit Ablaufzeit setzen?yes
Wie überprüfen Sie die Ablaufzeit Ihres Cookies?
– Polin
31. Oktober 2012 um 9:52 Uhr
polin: Drücken Sie in Chrome F12 (alternativ gehen Sie zu Tools-> Developer Tools). Es öffnet sich der Rahmen unten, dort können Sie es überprüfen.
– Ameisenbiene
31. Oktober 2012 um 10:02 Uhr
Ich weiß, wie es kommt. Meine Frage ist, können Sie die Ablaufzeit sehen. Ich habe es mit console.log(document.cookie) versucht, aber dort können Sie das Cookie sehen, nicht die Ablaufzeit
– Polin
31. Oktober 2012 um 10:11 Uhr
Ja, in der Spalte „Läuft ab“ (nach der Pfadspalte) wird das Datum und die Uhrzeit angezeigt, wann das Cookie abläuft. In meinem Fall wird jedoch „Sitzung“ angezeigt, was bedeutet, dass sie abläuft, wenn ich den Browser schließe
– Ameisenbiene
31. Oktober 2012 um 11:02 Uhr