Tengo una página en domain.com
que hace una solicitud JSONP ajax (usando la función jQuery's .getJSON()
) a una URL en anotherdomain.com
. Pensé (léase: asumí) que el recurso en anotherdomain.com
tendría acceso del lado del servidor a las cookies establecidas en ese dominio, pero ese no parece ser el caso?Cookie Access sobre JSONP
La llamada ajax se realiza específicamente para acceder a una cookie en particular, realizar una manipulación de los datos y devolver un amplio conjunto de información codificado por el valor de la cookie. El dominio original no tiene acceso directo al valor de la cookie, así que pensé que una solicitud ajax mantendría el estado que necesito.
¿Qué parte esencial de la información sobre cookies estoy pasando por alto? Estoy agotado y simplemente no lo estoy viendo.
Gracias.
ACTUALIZACIÓN
he encontrado una manera de hacerlo, pero parece JSONP a mi ojo, por lo que me pregunto por qué esta forma de trabajar, mientras que la versión Ajax no lo hace. ¿La solicitud está desconectada de la sesión del navegador para que no se pueda acceder a las cookies?
<script type="application/x-javascript" src="<?php echo $service_url . '&callback=interests' ?>"></script>
<script type="text/javascript">
function interests(data) {
$(function() {
var c_behaviors = data.length;
var ids = [];
for(var i = 0; i < c_behaviors; i++) {
ids.push(data[i].behavior_id);
}
$('body').append('<p><label>Returned:</label> ' + ids.join(', ') + '</p>');
});
}
</script>
Estoy seguro de que se ha triplicado comprobó esto, pero ¿qué tan seguro está de que la cookie fue establecida por otrodominio.com? Además, ¿cuál es el estado de la cookie que se está configurando, como la caducidad, la ruta, etc. –
Sí. Si alerté a la URL objetivo antes de la llamada ajax y luego cargo la URL objetivo en una nueva pestaña, obtengo exactamente lo que espero obtener. Parece que la llamada de Ajax está más desconectada de la sesión del navegador de lo que pensaba. –
Pruebe la llamada $ .ajax con el tipo "json" y vea qué tipo de resultados obtiene. Por cierto, su enfoque JSONP fue documentado http://stackoverflow.com/questions/1421245/make-getjson-in-jquery-to-pass-cookies-to-external-domain y funcionó para otra persona también –