8 votos

¿Cuándo debo usar un proxy con OpenLayers?

Cuando exactamente qué necesito para utilizar un proxy con openlayers? He hecho un montón de lectura en esto, pero parece que no puede encontrar un definidas respuesta. Me preguntaba si esta es la ruta de mis problemas.

Por ejemplo, si tengo un servidor que ejecuta Geoserver (WFS) en el puerto 8080 y Apache (que sirve de OpenLayers) en el puerto 80 lo necesito para utilizar un servidor proxy?

Si los servidores están phyically separado necesito usar un proxy?

Muchas gracias, Steve

8voto

Adam Ernst Puntos 6939

Usted necesita un proxy si usted está haciendo una petición AJAX a una máquina y/o el puerto que es diferente de la que su página web se sirvió de.

Tanto en sus ejemplos de arriba se necesita un proxy (en el servidor que es el que sirve a la página web) si usted desea hacer WMS getfeatureinfo, solicitudes o cualquier tipo de petición WFS. Sin embargo, usted no necesita un servidor proxy para la simple WMS getMap solicitudes.

3voto

texai Puntos 178

por favor, lee aquí.

¿Por qué necesito un ProxyHost?

Debido a restricciones de seguridad en Javascript, no es posible recuperar la información de los dominios remotos a través de un XMLHttpRequest.

Las clases como WFS y GeoRSS uso de XMLHTTPRequest para obtener sus datos. Si se consulta a un servidor remoto (otra cosa que la máquina el alojamiento de su página), debe instalar un script de proxy en algún sitio web accesible en esa máquina. Vea a continuación para saber cómo configurar su propio ProxyHost.

Si el OpenLayers.ProxyHost variable no está configurado para una válida de host proxy, las solicitudes se envían directamente a los servidores remotos. En la mayoría de los casos, la el resultado será una excepción de seguridad, a pesar de esta excepción a menudo se produce de forma silenciosa.

espero te sirva de ayuda...

2voto

Anthony Cramp Puntos 126

Cuando JavaScript fue desarrollado por primera vez, no se imaginaba que iba a tener un amplio uso, y por lo tanto muchos de los supuestos de hecho durante su desarrollo, que se han convertido en problemáticas de hoy en día.

Cuando Microsoft diseñó el XMLHttpRequest en su Navegador Internet Explorer, que fue diseñado con una gran limitación.

El XMLHttpRequest no permiten hacer una petición a otro servidor. Incluso dos servidores que se ejecutan en la misma máquina, pero diferentes puertos tienen esta limitación.

Lo que usted necesita hacer, es tener un cgi proxy en el apache servidor web (puerto 80), y el uso de la OpenLayers.ProxyHost a punto.

El OpenLayers sitio tiene un FAQ Respuesta para este problema :

¿Por qué necesito un ProxyHost?

Debido a restricciones de seguridad en Javascript, no es posible recuperar la información de los dominios remotos a través de un XMLHttpRequest.

Las clases como WFS y GeoRSS uso de XMLHTTPRequest para obtener sus datos. Si se consulta a un servidor remoto (otra cosa que la máquina el alojamiento de su página), debe instalar un script de proxy en algún sitio web accesible en esa máquina. Vea a continuación para saber cómo configurar su propio ProxyHost.

Si el OpenLayers.ProxyHost variable no está configurado para una válida de host proxy, las solicitudes se envían directamente a los servidores remotos. En la mayoría de los casos, la el resultado será una excepción de seguridad, a pesar de esta excepción a menudo se produce de forma silenciosa. ¿Cómo puedo configurar una ProxyHost?

Un ejemplo de host proxy secuencia de comandos está disponible aquí: trunk/openlayers/ejemplos/proxy.cgi

Para el estándar de configuración de Apache, que pondría proxy.cgi en tu directorio /usr/lib/cgi-bin/ directorio.

Una vez que un host proxy secuencia de comandos se ha instalado, a continuación, debe editar el OpenLayers.ProxyHost variable para que coincida con la URL.

Dado lo anterior estándar de configuración de Apache:

OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";

Si usted ha hecho algo como esto, usted debería ser capaz de visitar:

 http://YourDomain.example.com/cgi-bin/proxy.cgi

El contenido resultante en esa página debe ser el openlayers.org sitio web.

Si usted recibe un error 404 en lugar de eso, el script de proxy no está en la ubicación correcta, o su servidor web no está configurado correctamente.

Después de haber copiado el archivo de proxy para el servidor, no se te olvide editar el allowedHosts de la matriz.


A pesar de que las respuestas existentes son bastante antiguo, creo que debe ser una respuesta exhaustiva, ya que esta cuestión se ha convertido en un canónica pregunta, y muchos otros son cerrados como sus duplicados. Este es mi intento de responder a esta pregunta, basándose en otras respuestas que he escrito en este sitio.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X