一、cesium加载geoserver wms数据跨域报错,已成功解决,亲测可用
二、解决步骤:
解决方法一:修改geoserver所在tomcat的web.xml文件
解决方法二:修改geoserver所在web-inf/web.xml文件
二者选一种即可 ,原理一致,推荐选方法一
解决方法一步骤:
1.下载
链接:https://pan.baidu.com/s/15k3yTmtW5ojI4hPtNEhx1g 提取码:utbi
2.找到里面的jar包cors-filter-2.4.jar和java-property-utils-1.9.1.jar复制在geoserver所在tomcat的根目录/lib/文件夹下
3.修改[tomcat]/conf/web.xml文件
将下述代码片段加入到在<filter>
平级位置
<!-- cesium跨域解决方案1 步骤3-->
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.重启测试
解决方法二步骤:
- 下载压缩包文件http://shanbe.hezoun.com/cors.zip 同上,
- 将其放在[Geoserver]\webapps\geoserver\WEB-INF\下,并解压缩,最终的文件路径如下:
[Geoserver]\webapps\geoserver\WEB-INF\org\mortbay\servlets\CrossOriginFilter.class - 修改[geoserver]/webapps/geoserver/WEB-INF下面的web.xml文件,
在<filter>
平级位置添加如下内容:
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>x-requested-with,content-type</param-value>
</init-param>
</filter>
...其他内容
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.重启geoserver
三、
参考
其他参考博客