2010-04-11 14 views
8

Suppongo che ci dovrebbe essere un modo per impostare un cookie per essere accessibile da tutto il dominio non importa da quale directory si sta impostando il cookie.Come impostare un cookie per essere accessibile attraverso l'intero dominio in Javascript

Dire in mypage.com/blue/index.php y impostare il cookie "color = blue;" in questo modo:

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

Utilizzando questo codice, la funzione di recupero dei cookie in mypage.com/home.php non può accedere al contenuto del cookie.

Se fosse solo dalle directory di primo livello che il cookie deve essere impostato, saremmo ok facendo path=../ invece di path=/

Ma come si fa a scrivere codice generico che imposta un cookie che è accessibile da qualsiasi pagina in quel dominio non badando a quanto è profonda la struttura del file nella pagina da cui viene impostato il cookie?

risposta

11

Utilizzare path proprio come hai fatto, ma impostare un ulteriore "dominio" attributo -delimitato. Se si avvia il valore del dominio con un ., esso consentirà qualsiasi sottodominio (.example.com consentirebbe effettivamente *.example.com).

La documentazione completa per le varie opzioni dei cookie here

+1

IE si differenzia nel trattamento dell'attributo DOMINIO: http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie -Internals-FAQ.aspx –

+4

Nel caso sia necessario un esempio di come metterlo in pratica: 'var exdate = new Date(); exdate.setDate (exdate.getDate() + 365); document.cookie = "my_cookie_value = yes; expires =" + exdate.toUTCString() + "; path = /; domain = .example.com"; ' – Russ

Problemi correlati