Geoserver的跨域问题
使用tomcat访问Geoserver服务的时候,只调服务没问题,但是查询要素属性的时候出现如下“XMLHttpRequest”、“not allowed by Access-Control-Allow-Origin”的跨域问题,参考网上一些办法,整合了一下适合自己的解决方案如下所述:
环境:Tomcat 8,Geoserver 2.10.2
1、停止Geoserver服务,从jetty-servlets.jar中下载与Geoserver版本对应的jar包,如我的Geoserver是2.10.2,对应jetty-servlets-7.6.0.v20120127.jar,放在 安装目录:“GeoServer 2.10.2\webapps\geoserver\WEB-INF\lib” 下,注意不要修改jar的名字。
2、修改 webapps\geoserver\WEB-INF\web.xml文件,在<filter>平级标签下添加:
1 <filter> 2 <filter-name>cross-origin</filter-name> 3 <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> 4 <init-param> 5 <param-name>allowedOrigins</param-name> 6 <param-value>*</param-value> 7 </init-param> 8 <init-param> 9 <param-name>allowedMethods</param-name> 10 <param-value>GET,POST</param-value> 11 </init-param> 12 <init-param> 13 <param-name>allowedHeaders</param-name> 14 <param-value>x-requested-with,content-type</param-value> 15 </init-param> 16 </filter>
在<filter-mapping> 平级标签下添加:
<filter-mapping> <filter-name>cross-origin</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3、最后启动Geoserver服务即可。
作者:芒果君
地址:www.cnblogs.com/nextsummer/