2010-04-21 15 views
5

Tengo un servidor en la intranet de nuestra compañía que ejecuta JBoss. Deseo enviar llamadas API a este servidor desde mi máquina, también en la intranet, y obtener las respuestas XML resultantes usando JQuery.¿Cómo se aplica la misma política de origen a las direcciones IP?

He leído la entrada en Wikipedia pero estoy confundido acerca de cómo eso se aplica a mi situación, ya que nuestras máquinas solo tienen direcciones IP, no nombres de dominio.

tengo

  • URL del servidor: 10.2.200.3:8001/serviceroot/service
  • dirección IP del cliente: 10.2.201.217

Mis preguntas son:

  1. Por lo que yo entiendo d estos son dominios diferentes, ¿verdad? Así que tengo que usar un proxy para emitir llamadas a JQuery.ajax al servidor
  2. Si quiero evitar hacer (2), ¿puedo instalar Apache en el servidor y server la página con el formulario de código JS allí? Pero entonces el JS será del 10.2.200.3 y el servidor será el 10.2.200.3:8001. ¿No se consideran estos dominios diferentes según la política?

¡Gracias!

+0

Pasé aproximadamente una hora tratando de resolver esto el año pasado y no creo que haya recibido una buena respuesta; No necesitaba uno realmente así que me di por vencido: I – Pointy

+0

puntiagudo, ¡te entiendo completamente! Me estoy tirando de los pelos para resolver este problema de JQuery de aspecto simple durante dos días. – recipriversexclusion

Respuesta

2
  1. Sí.

  2. Sí, diferentes puertos significan diferentes orígenes. Esto es algo que la mayoría de los navegadores han hecho en JS por un tiempo, pero se describe explícitamente en el HTML5 draft, al que hace referencia el XMLHttpRequest draft.

Si A y B tienen componentes de puertos que no son idénticas, devuelve falso.

+0

Gracias Bobince! Otro Q: ¿Cuál sugeriría, debería hacer que mi servidor JBoss también sirva las páginas con JS en 10.2.200.3:8001 o debería ir con la solución de servidor proxy comúnmente utilizada. – recipriversexclusion

+0

Depende de cuán integrales sean sus extras web para el servicio, creo, si desea que formen parte del mismo proyecto. De cualquier manera, me resistiría a ejecutar scripts de desarrollo AJAX contra un servidor de producción, si eso es lo que es. – bobince

2

Si el puerto o la dirección son diferentes, son dominios diferentes. Si necesita acceder a la información de lo que efectivamente es otro servidor, realmente tiene dos opciones. Una es escribir algún tipo de proxy inverso para pasar sus solicitudes desde el mismo servidor de origen al servidor secundario.

De manera alternativa, si tiene el control del objetivo secundario y no existe riesgo de seguridad al proporcionar acceso directo, podría considerar ajustar el servidor secundario para emitir respuestas JSON-P.

Cuestiones relacionadas