一、问题描述
最近在用Tomcat9最新版本部署程序的时候,发现其他服务访问我的静态资源的时候出现了跨域访问,结果很明显被拦截了,之前的文章介绍了Tomcat8.5的跨域配置,但是研究发现,在最新版本中该部分内容被默认去掉了,所以又研究了一下配置,需要的朋友可以参考一下。
二、解决办法
在apache-tomcat-9.0.8\conf\web.xml的第600行附近左右(因为该部分是tomcat配置过滤器的位置)增加以下配置:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<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>*</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三、程序截图
程序截图如下所示:
最后强烈推荐一个公众号,这是一群志同道合的伙伴,都在各个一线厂商工作,各种资源,各种内推等着大家。