18 votes

Pourquoi document.cookie ne fonctionne pas

  var curCookie = name + "=" + value +
    "; expires=" + ATS_getExpire()  +
    "; path=" + path  +
    "; domain=" + domain  ;     
document.cookie = curCookie;
alert("Your Cookie : " + document.cookie);

Lorsque j'utilise le code ci-dessus, le message d'alerte est vide. Pourquoi document.cookie est-il vide ? Veuillez répondre à cette question.

15voto

Raynos Points 82706

Voir ici pour un Exemple en direct

Vous utilisez ; au lieu de , .

Utilisez , pour délimiter les valeurs de vos cookies

var curCookie = name + "=" + value + 
    ", expires=" + ATS_getExpire() + 
    ", path=" + path + 
    ", domain=" + domain;

document.cookie = curCookie;
alert("Your Cookie : " + document.cookie);

UPDATE

À ce jour (2021-08-25), l'exemple en direct n'est pas cohérent dans tous les navigateurs :

  • Chrome 92.0.4515.159 : ❌
  • Edge 92.0.902.78 : ❌
  • Opera 77.0.4054.277 : ❌
  • Firefox 91.0.2 : ✅

9voto

Sean Munson Points 156

J'ai découvert que ... de manière frustrante, document.cookie ne fonctionne pas lorsque l'on exécute la page localement dans son navigateur.

Lorsque j'ai téléchargé la même page sur un site Web, toutes les valeurs des cookies ont soudainement fonctionné sans problème. Je vais trouver pourquoi et compléter le reste de cette réponse plus tard.

4voto

krd Points 1783

Cela peut parfois se produire si la page est hébergée sur un domaine répertorié dans la liste du liste publique de suffixes (par exemple, github.io, cloudfront.net). Ces domaines sont traités spécialement par le navigateur et limitent l'écriture de cookies pour des raisons de sécurité.

2voto

RunningAdithya Points 423

Essayez d'utiliser le plugin jQuery Cookie :

plugin jQuery Cookie

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X