问题:当openlayer、cesium等访问geoserver发布的服务时遇到跨域的访问。
****不同版本的jar包可能也不一样,也可能有效;配置修改也不一样**** 我的shigeoserver2.13.1
有一点需要说明:不管是否配置跨域wms的访问是不会受影响的,因为请求的是图片。但wfs不能,因为通常返回的是json数据。
- 复制jar包:将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入geoserver目录下webapps\geoserver\web-inf\lib中。jar包地址:链接: 网盘地址 提取码: b6i9
- 修改配置:打开geoserver目录下webapps\geoserver\web-inf中的web.xml。添加过滤器代码:
添加过滤器代码: <filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> </filter> 添加过滤器路由代码: <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
重启geoserver
- 如果目录中存在maven,需要在pom.xml中添加
<dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>cors-filter</artifactId> <version>[ version ]</version> </dependency>