Créer un cookie en javascript

Mars 2013

En général on créé des cookie côté serveur (via les headers HTTP, comme le fait la fonction setcookie en PHP). Mais on peut aussi créer un cookie côté client en Javascript.

Le fonctionnement est un peu étrange et vraiment pas pratique, l'accès aux cookies en Javascript se fait via la variable document.cookie. Cette variable contient la liste des cookies définis sur le domaine courant, chaque cookie étant séparé par un point virgule, et se présente comme ceci : nom=valeur.

Pour créer, modifier ou supprimer un cookie, il suffit d'affecter une valeur à document.cookie. Le navigateur web implémente un mécanisme spécifique pour cette variable document.cookie, c'est bizarre mais ça marche. Voici quelques exemples :

Créer un cookie en Javascript

La syntaxe est très simple, cette ligne créé un cookie nommé "dessert" ayant pour valeur "crumble" :

document.cookie = "dessert=crumble";

Par défaut, le cookie est créé sur le chemin courant (et non à la racine du domaine), et expire dans 1 an. On peut définir la date d'expiration et le chemin comme ceci :

document.cookie = "dessert=crumble; expires=" + new Date("2013-03-15").toUTCString() + "; path=/";

D'autres options permettent de créer un cookie sécurisé (HTTPS).

Modifier un cookie en Javascript

La modification ressemble beaucoup à la création, en fait tout se passe comme si on créé un nouveau cookie qui va écraser l'ancien.

document.cookie = "dessert=Crème brulée; expires=" + new Date("2013-03-15").toUTCString() + "; path=/"

Si vous voulez en savoir plus c'est par ici : quelle version d'excel choisir ?.

Supprimer un cookie en Javascript

Pour supprimer un cookie, il faut le modifier en lui affectant une date d'expiration dans le passé :

document.cookie = "dessert=; expires=" + new Date("1970-01-01").toUTCString() + "; path=/"

HttpOnly

Tous les cookies ne sont pas accessibles via Javascript. Lorsqu'un cookie est créé par la méthode normale, c'est à dire via un header HTTP Set-Cookie, le serveur peut définir l'option HttpOnly. Un cookie HttpOnly est invisible en Javascript, n'apparaît même pas dans la variable document.cookie.

Créer un cookie avec jQuery

jQuery ne permet pas nativement de manipuler les cookies, mais il existe un plugin jQuery qui permet de le faire. Le projet est téléchargeable sur GitHub : https://github.com/carhartl/jquery-cookie.

Découvrez ce tutoriel photoshop : carte de noël magique à lire tout de suite !

0 commentaire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré