在两台服务器上部署tamcat,一台tamcat部署前端项目,一台tamcat部署后端项目,访问前端后发起请求报403
时间: 2024-02-05 20:11:20 浏览: 28
这种情况一般是因为跨域问题导致的。如果前端和后端不在同一个服务器上,那么就会存在跨域问题。为了解决这个问题,可以考虑在后端的 Tomcat 服务器中配置 CORS。CORS 是允许跨域资源请求的机制,可以在 Tomcat 的 web.xml 文件中进行配置。
在 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>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
这段代码中,`cors.allowed.origins` 参数设置允许哪些域名进行跨域请求,这里使用通配符 `*`,表示允许所有域名进行跨域请求。`cors.allowed.methods` 参数设置允许哪些 HTTP 方法进行跨域请求,这里设置了常用的 GET、POST、HEAD、OPTIONS、PUT 和 DELETE 方法。`cors.allowed.headers` 参数设置允许哪些 HTTP 头信息进行跨域请求,这里设置了常用的 Content-Type、X-Requested-With、accept、Origin、Access-Control-Request-Method、Access-Control-Request-Headers 和 Authorization 头信息。
完成配置后,重新启动 Tomcat 服务器,再次访问前端页面并发起请求,应该可以正常获取到后端的响应数据了。