2009-11-24 7 views
1

Je tente de définir un cookie sur une page particulière pour être lu sur une autre page. Je souhaite savoir pourquoi l'autre page n'est pas envoyée le cookie. L'examen de ce qui se passe montre que le cookie est défini sur, mais n'est pas envoyé au serveur. Ma compréhension était que si le chemin d'un cookie n'est pas défini, le cookie sera envoyé à n'importe quelle page du domaine, bien que j'aie essayé d'ajouter path=/ au cookie au cas où cela aiderait de toute façon. Opera a le cookie marqué comme "Seulement envoyé au créateur" pour une raison quelconque. Je suis sûr qu'il me manque quelque chose de simple.Certains cookies ne sont pas envoyés au serveur

<script type="text/javascript"> 
    function setCookie(c_name,value,expiredays) 
    { 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate()+expiredays); 
    document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString()); 
    } 
    setCookie("mycookie",document.location.href,7); 
</script> 


http://www.site.com/Folder/subfolder/page.aspx - Cookie réglé ici
http://www.site.com/folder/page.aspx - Cookie doit être envoyé ici. Pourquoi n'est-ce pas?

+0

Problème numéro un: vous testez avec Opera! –

+0

@Josh: En fait, je testais avec plusieurs navigateurs. J'ai mentionné Opera à cause de ce paramètre. – Brian

Répondre

2

Comme vous l'avez dit vous-même, ajoutez le chemin:

document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString()+" ;path=/"); 

Si cela ne fonctionne pas, supprimer tous les cookies et recommencer. Les vieux cookies sans le jeu de chemins peuvent être en train de chambouler quelque chose.

+0

J'ai tapé quelque chose de mal quand j'ai essayé de définir le chemin dans l'espoir de le réparer. : / – Brian

0

Cela ne fonctionnera certainement pas sans définir explicitement path; cela devrait certainement marcher si vous définissez le chemin.

Questions connexes