2011-01-12 17 views
5

utilizando XMLHttpRequest no es posible abrir una conexión a un documento en un dominio diferente de donde está alojada la página.XMLHttpRequest scripts de sitios cruzados en el mismo servidor pero puerto diferente

pero ¿qué pasa con los diferentes puertos?

por ejemplo, tengo un servidor web que se ejecuta en mi máquina escuchando en el puerto 80 por lo que el webaddress se vería así:

http://localhost:80/mypage.html 

y tengo otro servidor web se ejecuta en el servidor local que está destinado a procesar las peticiones Ajax, pero escucha en un puerto diferente. por lo que el Javascript en mipagina.html se vería así:

var xmlhttprequest = new XMLHttpRequest(); 
xmlhttp.open("GET", "http://localhost:1234/?parameters", true); 
xmlhttp.send(); 

funcionaría esto? ¿O dará una excepción de seguridad también?

Respuesta

8

El uso de un puerto diferente realmente cuenta como scripts entre sitios.

Hay varias maneras conocidas para hacer una llamada (siempre se puede enviar los datos) y utilizar la respuesta (que es lo que normalmente no se pueden hacer bajo las restricciones anti-XSS), incluyendo JSONP y el uso de un iframe en el página para cargar los datos.

5

Esto no funcionaría ya que todavía está prácticamente en otro servidor (al menos otra instancia del servidor, que puede no estar bajo su control).

Puede agregar un Access-Control-Allow-Origin: http://yourdomain:1234/ en los encabezados, google para Compartir recursos de origen cruzado. Aunque es relativamente nuevo, no todos los navegadores lo saben. O puede usar jQuery (más información en http://softwareas.com/cross-domain-communication-with-iframes).

Cuestiones relacionadas