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>  
View Code

<filter-mapping> 平级标签下添加:

<filter-mapping>    
 <filter-name>cross-origin</filter-name>    
 <url-pattern>/*</url-pattern>    
</filter-mapping>  
View Code

3、最后启动Geoserver服务即可。

posted @ 2017-03-20 22:14  芒果君  阅读(333)  评论(0编辑  收藏  举报