2009-07-29 11 views

Respuesta

11

Su debido a la restricción en las solicitudes de dominios cruzados implementadas en el navegador para XMLHttpRequests. Puede evitar esto utilizando JSONP como formato, de lo contrario necesitará un proxy del lado del servidor para la solicitud.

Citando del ajax documentation en http://jquery.com

Nota: Todas las solicitudes remotas (no en el mismo dominio) deben especificarse como GET al 'guión' o 'jsonp' es el tipo de datos (porque carga el script usando una etiqueta de script DOM). Las opciones de Ajax que requieren un objeto XMLHttpRequest no están disponibles para estas solicitudes. Las funciones completas y de éxito son llamadas al finalizar, pero no reciben un objeto XHR; las funciones beforeSend y dataFilter no son llamadas a .

0

Porque si la política del mismo origen jQuery no permitirá esto. La mejor opción será usar alguna página de servidor proxy para obtener las páginas requeridas.

6

Como http://en.wikipedia.org/wiki/Cross-origin_resource_sharing dice:

uso compartido de recursos de origen cruzado (CORS) es un mecanismo que permite que una página Web para hacer XMLHttpRequests a otro dominio. 1 Tales peticiones de "dominio cruzado" estarían prohibidas por los navegadores web, de acuerdo con la misma política de seguridad de origen. CORS define una forma en que el navegador y el servidor pueden interactuar para determinar si se permite o no la solicitud de origen cruzado. 2 Es más poderoso que solo permitir solicitudes del mismo origen, pero es más seguro que simplemente permitir todas las solicitudes de origen cruzado.

Para PHP que se realiza mediante la función header():

<?php 
header("Access-Control-Allow-Origin: http://example.com"); 
?> 

CORS se puede utilizar como una alternativa moderna al patrón JSONP. Mientras que JSONP admite solo el método de solicitud GET, CORS también admite otros tipos de solicitudes HTTP . El uso de CORS permite que un programador web use XMLHttpRequest regular, que admite un mejor manejo de errores que JSONP. Por otro lado, JSONP funciona en navegadores heredados que impiden el soporte de CORS.CORS es compatible con la mayoría de los navegadores web modernos. Además, aunque JSONP puede causar problemas XSS donde el sitio externo es comprometido, CORS permite que los sitios web analicen manualmente las respuestas a para garantizar la seguridad.

JSONP o "JSON con relleno" es una técnica de comunicación utilizada en JavaScript. Proporciona un método para solicitar datos de un servidor en un dominio diferente , algo prohibido por los navegadores web típicos porque de la misma política de origen.

Cuestiones relacionadas