当前位置:首页 > nginx > 正文

nginx是怎么解决跨域问题的

  • nginx
  • 2024-05-20 10:51:37
  • 966

⒈Nginx部署前后端项目时的跨域问题

最近在开发一个小项目时,使用Tomcat部署了一个后端SpringBoot项目,然后将前端接口和跨域请求部署到对应的tomcat集群A上,域问题发生了,解决过程很有趣,特记录在这里。

Nginx-Domain配置方法一

严格来说,这种方法不属于跨域请求,因为这种配置要求后端请求的URL为http://shop。 mk-shop.com/mk-shop-api/xxxx,也就是说前端项目的请求地址要改成和进入客户端页面时的URL地址一样,所以好像没有那里存在跨域问题。 如果前端项目的不同模块的请求地址不同,则必须全部更改。
Nginx-Domain配置方法二

以我项目上的后端请求地址为例:

SpringBoot后端进行跨域处理时,可以配置过滤器来实现

注意:新的SpringBoot版本在使用setAllowedOrigins*时可能会报错,应该改用setAllowedOriginPatterns。


⒉Nginx解决前端跨域问题CORS跨域配置?

Nginx的CORS配置,网上这样的配置太多了,但大多数人复制粘贴转发,几乎都是类似下面三两行:

add_headerAccess-Control-Allow-Origin*;
add_headerAccess-Control-Allow-HeadersX-Requested-With;
add_headerAccess-Control-Allow-MethodsGET、POST、OPTIONS;

这有用吗?有用,我以前都是这样正常使用的,但是后来还是遇到了问题。 发现有的项目请求不成功,有的浏览器成功,有的浏览器不成功;

参考Nginx解决前端跨域问题Linux部署和配置nginx。