2010-11-18 9 views
5

que necesitan una cookie de autenticación HttpOnly para trabajar en:múltiples sub-dominios y problemas ajax

mydomain.com 
www.mydomain.com 
abc.mydomain.com 

de modo que pueda ser registrado en los tres lugares a través de un único inicio de sesión.

esto está funcionando bien, mediante el establecimiento de mi dominio de la cookie a:

.mydomain.com 

aquí es la cabecera de respuesta que establece la cookie:

MYAUTHCOOKIE=FOO; domain=.mydomain.com; path=/; HttpOnly 

Todo esto funciona bien para las solicitudes del navegador normales.

Sin embargo, tengo que hacer una solicitud de AJAX de mydomain.com y www.mydomain.com a abc.mydomain.com.

Cuando realizo la solicitud, no está pasando la cookie de autenticación. ¿Por qué es esto y qué puedo hacer al respecto?

si hago una solicitud para el mismo host que la página de la JS reside en, no envía la cookie: s

Aquí está mi código de solicitud:

$.ajax({ 
    type: "POST" 
    , data: { data: { foo: bar} } 
    , dataType: "json" 
    , url: "http://abc.mydomain.com/foo" 
    , timeout: 5000 
    , success: function (data, textStatus) { 
     alert('woo!'); 
    } 
    , error: function (xhr, textStatus, error) { 
     alert('meh'); 
    } 
}); 

Es esto una política de dominios ? ¿Por qué el dominio de cookies no funciona?

Gracias

Respuesta

1

De acuerdo con la same origin policy, subdominios son de hecho "hostil" a su dominio superior, pero pueden ser fijados mediante el establecimiento de document.domain (mismo artículo).

+0

Si configura document.domain en 'foo.com' en URL http://one.foo.com/, ¿cómo sabe el servidor la configuración document.domain en http://two.foo.com/ antes hace la solicitud a 'dos'? –

+0

¿Cómo afectaría esta situación la realización de solicitudes CORS con encabezados de control de acceso? – Mnebuerquo

Cuestiones relacionadas