2010-10-26 15 views
15

Sé que las solicitudes de dominio cruzado no están permitidas por razones de seguridad, pero tenía la impresión de que solo el dominio de nivel superior necesitaba coincidir , que diferentes subdominios estaban bien. Sin embargo, yo estoy recibiendo este error de Chrome 7:Pensé que las solicitudes AJAX de subdominio cruzado estaban permitidas, pero este error de Chrome parece indicar lo contrario

"intento inseguro JavaScript para acceder marco con el URL http://foo.somedomain.com/dir/page.html del marco con el URL http://bar.somedomain.com/otherdir/otherpage.html dominios, protocolos y puertos deben coincidir"

¿Cuáles son exactamente las reglas para estos tipos de solicitudes?

+3

no estaba apuntando el dedo a Chrome, sólo estaba señalando que se trataba de cromo que me estaba dando esta respuesta informativa que realmente cuestionó mi comprensión de las reglas :) – Matt

Respuesta

16

En resumen, las reglas de la política del mismo origen son:

  • mismo host
  • mismo puerto
  • mismo protocolo

En el ejemplo, usted está violando la regla de acogida, como un subdominio diferente podría apuntar a un host/IP diferente de otro, incluso si el dominio de segundo nivel es el mismo.

Si no tiene otra posibilidad, puede intentar usar JSONP en su solicitud de AJAX; esto no tiene un SOP.

Reference

5

No se permiten solicitudes cruzadas de subdominios en ningún navegador. Pero hay algunas formas, como CORS, usando iframes, configurando document.domain para que funcione (aunque con algunas limitaciones).

Cuestiones relacionadas