2011-06-03 6 views
27

tengo el siguiente árbol de directorios:configuración de las cookies que utilizan JavaScript en un archivo HTML local

+ folder1 
|--- folder2 
|------ page1.html 
|--- page2.html 

Si fijo alguna galleta en page1.html uso de JavaScript, ¿cuál es la ruta utilizada para esa galleta?

Editar:
Déjame explicarlo mejor. Estoy trabajando con un archivo local. Se está accediendo al page1.html a través del /home/user/.../folder1/folder2/page1.html y no a través de un equipo cliente que usa un servidor HTTP.

Solo para aclarar:
Parece que algunos navegadores (como Chrome) no almacenan las cookies cuando se utiliza file:///, pero tanto en Firefox e Internet Explorer lo hacen.

+0

Cookie independiente de la página donde se creó, la "ruta" consiste únicamente en el dominio del sitio web. (Suponiendo que se refiera al nombre de la cookie tal como aparece en la lista de cookies del navegador) –

+0

Ver mi edición. No sé por qué obtuve un voto a favor ': (' –

+0

Lo siento, pensé que no verificabas información básica: no tomas en cuenta. –

Respuesta

17

Desde el MDC page for document.cookie:

Si no se especifica, [los] path argumento por defecto a la ruta actual de la ubicación del documento actual.

En su caso, será /folder1/folder2/.


No vi inicialmente que usted había especificado "local" en el título de la pregunta - no estoy seguro si esto se actualiza mientras estaba escribiendo mi respuesta. Las cookies no se configuran al navegar usando el protocolo file:///, dependiendo del navegador.

+0

Revisa el comentario en @Squeegy post. Estoy un poco confundido ... –

+0

@Oscar mira el mío, a unos 20 píxeles del tuyo! – lonesomeday

+3

sí, parece ser el ser el problema. IE y Firefox hacen cookies usando 'file: ///' pero Chrome no hace eso :) De todos modos, creo que tu respuesta es correcta para IE y Firefox. –

9

Los navegadores no almacenan cookies para el protocolo de la url file://, simplemente no podrá establecer nada en absoluto. Entonces, si esto es realmente "local" y no en un dominio, es posible que tenga un problema.

+0

Parece que sí. Estoy configurando una cookie en 'page1.html', luego cierro el navegador, abro la página nuevamente (localmente, por supuesto) y luego pido esa cookie y todavía está allí:? –

+1

@Oscar Creo que esto es una cuestión de navegador cruzado. Chrome tiene una interpretación ligeramente diferente de la política del mismo origen en comparación con Firefox o Internet Explorer, particularmente cuando se trata del protocolo 'file: ///'. – lonesomeday

5

conjunto --enable-file-cookies for chrome y debería funcionar para usted. Además, hay algunas características que tendrá que configurar "aceptar todas las cookies" también para hacer el trabajo, pero si lo hace, asegúrese de retroceder antes de volver a conectarse.

+1

¿Cómo se configura '--enable-file-cookies' en alguna parte de' chrome: // flags' ?? – Mostafa

8

Si estás en un Mac, puede cerrar Chrome y reinicia este modo:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-file-cookies 

a continuación, será capaz de establecer cookies en los archivos locales.

+0

+1: Esto funcionó. Usado en la Terminal. Tuve que eliminar el segundo guión en la bandera "--enable-file-cookies", por lo que debería verse así: 'abrir/Aplicaciones/Google \ Chrome.app/Contents/MacOS/Google \ Chrome -enable-file-cookies' – FreeAsInBeer

Cuestiones relacionadas