tomcat8.5.30+ 配置跨域问题

Posted Arthur_Excalibur

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat8.5.30+ 配置跨域问题相关的知识,希望对你有一定的参考价值。

最近将项目迁移到mac上,用vue做前后端分离时前段项目测试调用后台接口时出现跨域问题

出现403错误   No \'Access-Control-Allow-Origin\' header is present on the requested resource.

403 是HTTP协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。

该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。

由于我前端项目在端口8083,而后台项目由tomcat发布在8080端口,从而出现了这个情况。

 

解决步骤

1.由于非maven项目,首先尝试将tomcat下的lib中的catalina.jar包导入到项目中

在Spring的配置文件 web.xml中添加 配置

<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>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

根据自己请求的接口修改filter-mapping中的url,这里为所有的接口

 

然后重启tomcat 查看是否生效。
2.如果未生效则尝试直接修改tomcat的配置文件,文件为tomcat的安装路径下的conf下的web.xml
 
然后在任意位置添加上面的配置(我放在590行下面),再次重启tomat,不出意料应该没有问题了
 
 

 

以上是关于tomcat8.5.30+ 配置跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

Webpack 配置 proxy 代理解决跨域问题

后端配置跨域

在vue项目中配置proxy解决跨域问题

nginx配置反向代理解决vue跨域问题

SpringBoot的Cros跨域问题经常始终不能解决跨域的原因

Spring Boot 全局跨域配置