OpenLayers跨域问题的tomcat下的设…
使用OpenLayers访问WFS服务是存在跨域问题,必须使用设置代理的方法才能正常使用,设置方法如下。
1. 打开OpenLayers\examples\
目录,找到proxy.cgi文件,将其拷贝到网络应用的\WEB-INF\cgi文件夹下
2. 编辑proxy.cgi文件,
在allowedHosts数组段内添加远程地址如geoserver服务器页面是192.168.0.4:8888/geoserver/那么就添加’192.168.0.4:8888’。
3.安装python27到默认的c:/Python27/目录下,经过测试python27可以正常使用,新版本无法保证正常使用,如python33无法正常使用该代理。
4.在应用的web.xml文件内添加如下内容
cgi
org.apache.catalina.servlets.CGIServlet
debug
0
cgiPathPrefix
WEB-INF/cgi
executable
c:/Python27/python.exe
passShellEnvironment
true
5
default
/
cgi
/cgi/*
5.修改Tomcat的Tomcat/conf/context.xml文件,将修改为
6.运行测试。假设该应用部署为http://localhost:8080/map/。浏览器上访问:http://localhost:8080/map/cgi/proxy.cgi,正常情况下反馈的是OpenLayers的主页。
7.在js中使用代理。在script开始的地方添加OpenLayers.ProxyHost =
“cgi/proxy.cgi?url=”这句话。
使用该方法经过测试可以解决跨域访问问题,如将geoserver的预览图层页面代码保存下来,在script开始的地方添加OpenLayers.ProxyHost
= “cgi/proxy.cgi?url=”,部署该应用后即可测试,效果应该和原页面一致。
转载自:https://blog.csdn.net/ZHANGHUI3239619/article/details/78746929