在实际开发过程中,geoserver发布的地图服务通常是要被其它网站访问的,因此需要解决跨域的问题。
参考:(163条消息) Geoserver学习之安装及设置允许跨域(一)_geoserver配置成允许跨越_NoCarrots的博客-CSDN博客
我们基于jetty解决了问题:
1. 查看jetty的版本:
2. 在https://mvnrepository.com查找并下载jetty-http, jetty-servlets, jetty-util对应版本的jar包。
3. 将下载的3个jar包,复制到GeoServer2.9.0\webapps\geoserver\WEB-INF\lib目录里
4. 记事本打开GeoServer2.9.0\webapps\geoserver\WEB-INF\web.xml文件,增加以下配置信息
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>chainPreflight</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5. 重启geoserver服务