2009-03-24 20 views
6

¿Cómo se puede establecer una cookie en un dominio diferente que llama a mi sitio con una llamada javascript? Funciona en FF3, pero no en IE6.Cómo configurar una cookie en un dominio separado en Rails

Llaman a mi servidor desde una etiqueta javascript en un sitio y dominio separados. El resultado devuelve javascript que rellena su página con datos (es un widget). Estoy intentando establecer una cookie usando domain = ". Mydomain.com" y path = "/". Funciona para Firefox, pero no funcionará en IE. Funciona bien en IE si pruebo la llamada javascript desde mi propio dominio.

¿Alguien sabe cómo hacer que la configuración de cookies entre dominios funcione en IE, usando Rails?

Respuesta

9

Mientras que su servidor está creando una cookie dentro de su propio dominio o subdominio de una de su dominio, esto debería funcionar

cookies[cookie_name] = { 
    :value => 'a value', 
    :expires => 1.year.from_now, 
    :domain => 'example.com' 
} 

no va a funcionar para cualquier otro dominio.

Para conseguir que esto funcione en IE6 es posible que tenga una cabecera P3P política válida

Algo como esto enviado como un encabezado debería hacerlo:

headers["p3p"] = 'CP="CAO PSA OUR"' 
+0

así es como lo fijo: Galletas [cookie_name ] = {: value => 'x',: expires => 1.day.from_now,: domain => '.midominio.com'} Y sí, funciona para firefox. De hecho, pensé que no, pero lo hace. Pero en IE, lo veo tratando de establecer el encabezado, pero la cookie no está allí después de cargar su página. – Zack

+0

¿Cómo lo sabes? ¿Puedes publicar tu código que te dice que la cookie no está allí? – DanSingerman

+0

Estoy usando Fidler para ver las llamadas a mi dominio y ver las respuestas del encabezado. Estoy usando la barra de herramientas de IE Developer para mirar las cookies en mi página (y la de ellos) pero no existe. También trato de agarrar la cookie cuando regreso a mi sitio y no existe. En FF todo funciona bien. – Zack

Cuestiones relacionadas