2016-12-23 3 views
1

Je rencontre un problème avec un cookie auquel je veux accéder avec JavaScript et CF. Je peux créer le cookie avec JavaScript, comme ça:Même cookie, différentes valeurs entre ColdFusion et JavaScript

document.cookie = 'SAVEDLISTINGS='+newc + ';path=/'; 

et sur la page suivante CF peut le voir très bien. Toutefois, si j'utilise le même JavaScript pour mettre à jour le cookie avec une nouvelle valeur, CF ne détectera pas la modification sur les pages suivantes. Il conserve sa valeur d'origine, comme en témoigne la sortie de débogage et le vidage de la portée Cookie.

JavaScript continue de voir la valeur de cookie correcte, que je peux vérifier en utilisant les outils de développement de Firefox. Je suppose que cela signifie que le fichier cookie est correctement mis à jour. Je ne vois pas deux cookies avec le même nom: un seul, et il a la valeur comme manipulé par le JavaScript.

je peux supprimer le cookie en JavaScript, en utilisant

document.cookie = 'SAVEDLISTINGS=; expires=Thu, 01 Jan 1970 00:00:00 UTC' + ';path=/'; 

et cela supprimera le cookie de CF ainsi (sur les pages suivantes).

Notez que je n'utilise pas CFCookie pour gérer le cookie, mais j'ai essayé de le définir vide par ColdFusion (avec httponly = no). Cela ne semble pas faire de différence.

+0

'Je l'ai expérimenté avec la mise en blanc par ColdFusion (avec httponly = non)' - donc, le plus souvent a ColdFusion httponly = yes? –

+2

http://stackoverflow.com/questions/1336126/does-every-web-request-send-the-browser-cookies Pourriez-vous vérifier que le cookie est effectivement envoyé? Peut-être que quelque chose l'invalide et n'est jamais renvoyé au serveur. Il devrait être dans les en-têtes de demande. –

+0

À l'aide des outils de développement, examinez la demande sortante _after_ vous la définissez avec javascript et _send_ it sur la page suivante. Le code de cookie approprié est-il défini dans l'en-tête? –

Répondre

1

Définissez la valeur de domaine du cookie pour vous assurer que vous obtenez/définissez le même cookie exact. Vous pouvez voir cette information avec Firebug. Vous pouvez voir ci-dessous comment deux cookies nommés "testName" sont traités comme des entités distinctes basées sur le domaine. Ceci est important pour que les différents sites puissent avoir les mêmes noms de cookies sans s'encombrer les uns les autres.

enter image description here