针对不同的方式,有不同的解决方法
一、Jetty运行方式
具体可以参考 官方文档,去掉了两处注释,由于我在项目中使用GeoServer并不会采用这种方式,此次并未测试。
2021-5-12 更新
在公司windows服务器上安装了一个Jetty的GeoServer发现跨域了,然后上Maven仓库下了jetty-servlets、jetty-util上图红框所示对应版本为9.2.13.v20150730的Jar包,放到了\webapps\geoserver\WEB-INF\lib下,并按照官网粘贴了相应的web.xml配置,重启OK。
二、war运行方式-对tomcat整体进行跨域配置(亲测可以)
下载两个jar包 jar包下载链接_密码:ejjc
放到tomcat/lib 文件夹下,并在web.xml <web-app 下添加以下配置。重启tomcat
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET,POST,HEAD,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept,Origin,X-Requested-With,Content-Type,Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2021-6-7 更新
这两个jar包适用于Apache Tomcat/9.0.31 和 8.5 或许还支持8.0吧
三、war运行方式-单独对GeoServer进行跨域配置(同事前段时间配置了没问题,我换了另外的环境却不得行)
具体的方式后面再补充吧