35 votes

Est-ce que jQuery envoie des cookies dans un message ?

Je veux savoir si, lorsque je fais un $.post(...) avec jQuery, Un cookie est-il envoyé au serveur dans la requête post ?

Gracias.

55voto

Ayman Hourieh Points 39435

Les cookies sont envoyés avec les demandes Ajax.

Lorsque le HTTPOnly est activé pour un cookie, ce cookie est caché des scripts côté client, mais le cookie est toujours envoyé avec les demandes Ajax.

2voto

Chris Simpson Points 3894

Il n'est pas possible d'utiliser les mêmes cookies sur le client et sur le serveur si l'option httpOnlyCookies est activée. Il y a de très bonnes raisons d'activer cette option :

http://www.codinghorror.com/blog/archives/001167.html

2voto

MSpreij Points 658

En utilisant Firefox+Firebug, vous pouvez voir exactement ce que jQuery envoie, et comment. Utile pour le débogage !

0voto

briznad Points 414

Désolé d'être un rabat-joie, mais je vais contredire les vibrations positives ici et dire NON.

Je construis actuellement une application qui utilise $.post pour se connecter à mon API backend, qui est alimentée par Express y node.js . J'utilise le middleware Express cookie parser pour lire les cookies envoyés dans chaque requête. Si j'accède à mon point de terminaison directement via le navigateur, le serveur dorsal peut voir les cookies visibles sur mon domaine. Cependant, lorsque j'utilise $.post dans mon application, l'objet cookie est simplement vide.

Il est possible que quelque chose m'échappe, mais j'ai testé cela pendant les deux dernières heures et la conclusion à laquelle je suis arrivé est que les cookies ne sont tout simplement pas envoyés en utilisant une requête jQuery $.post :/.

0voto

glyph Points 438

Une chose à prendre en compte est le chemin des cookies. Si un script chargé par ajax définit un cookie, son chemin peut être différent de celui de la page parent, ce qui le place dans une portée différente pour certaines applications serveur ou JQuery. J'ai passé un moment aujourd'hui à tourner en rond sur ce sujet puis j'ai remarqué que les cookies que j'avais du mal à lire avaient un chemin différent défini.

La solution simple pour moi était de définir le chemin de tous les cookies à / avec jquery dans ma demande ajax comme suit :

 $.cookie("isolates_grid_tgl", "true", { path: "/" });

firebug cookies view

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