2010-04-11 8 views
8

Je suppose qu'il devrait y avoir un moyen de définir un cookie pour être accessible à partir du domaine entier, quel que soit le répertoire dans lequel vous définissez le cookie.Comment définir un cookie pour être accessible sur l'ensemble du domaine en Javascript

Dites dans mypage.com/blue/index.php y définir le cookie "color = blue;" de cette façon:

document.cookie = "colour" + "=" + "blue" 
    + "; expires=" + expireDate.toGMTString() 
    + "; path=/"; 

En utilisant ce code, la fonction de récupération des cookies dans mypage.com/home.php ne peut pas accéder au contenu du cookie.

Si c'était juste de premiers répertoires de niveau que le cookie doit être fixé, nous serions ok en faisant path=../ au lieu de path=/

Mais comment allez-vous l'écriture de code générique qui définit un cookie qui est accessible à partir de n'importe quelle page de ce domaine sans tenir compte de la profondeur de la structure du fichier est la page à partir de laquelle le cookie est défini?

Répondre

11

Utilisez comme path comme vous l'avez fait, mais définissez un attribut "domaine" supplémentaire. Si vous démarrez la valeur de domaine avec un ., cela autorisera tous les sous-domaines (.example.com autoriserait effectivement *.example.com).

Documentation complète pour les différentes options de cookies here

+1

IE diffère dans le traitement de l'attribut DOMAIN: http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie -Internals-FAQ.aspx –

+4

Juste au cas où vous avez besoin d'un exemple de la façon de mettre cela en pratique: 'var exdate = new Date(); exdate.setDate (exdate.getDate() + 365); document.cookie = "mon_cookie_value = oui; expires =" + exdate.toUTCString() + "; chemin = /; domaine = .example.com"; ' – Russ

Questions connexes