javascript - Llamadas de Ajax al subdominio
xmlhttprequest cherrypy (5)
La solicitud AJAX solo es compatible en el mismo dominio. Sin embargo, puede escribir un proxy HTTP en su lenguaje de scripting preferido y realizar llamadas a ese proxy HTTP. Puede consultar este pequeño tutorial sobre un proxy AJAX escrito en php.
Tengo un servidor ubicado en example.com que ejecuta apache, que sirve mis archivos html estáticos.
También tengo un servicio json ubicado en api.example.com ejecutando python con cherrypy.
El usuario solicita example.com y obtiene la página html de índice. En esa página hago una solicitud de Ajax con jquery al servicio json. document.domain
returns example.com
$.ajax({
type: ''GET'',
url: ''http://api.example.com/resource/'',
dataType: ''json'',
success: successCallback,
error: errorHandler
});
Sin embargo, no puedo ver el cuerpo de respuesta para la solicitud de ajax en Firebug. Esto me lleva a creer que el navegador (FF) no es compatible con esto.
¿Cuáles son los mejores métodos para lograr esto? Preferiría no utilizar ningún proxy en el backend de Apache para example.com, si es posible.
También puede usar JSONP agregando callback =? hasta el final de la url. jQuery ya sabe cómo manejar este tipo de solicitudes, pero requiere algunos cambios del lado del servidor para manejar el parámetro de devolución de llamada.
Use document.domain para hacer que el dominio sea el dominio de nivel superior en lugar del subdominio.
document.domain="example.com"
Esto se describe en detalle en MDN.
intente cambiar su dominio en su subdominio, como este
<script type="text/javascript">
document.domain = ''example.com'';
</script>
si no funciona, cambie su document.domain en su página de dominio también.
Por lo que yo sé, no se puede hacer un dominio cruzado AJAX.
¿Por qué el dominio cruzado Ajax es una preocupación de seguridad?
Aunque supongo que podrías hacer una solución alternativa de IFRAME