前言

前两周在服务器上部署一个系统时,遇到了跨域问题,这也不是第一次遇到跨域问题了,本来以为解决起来会很顺利,没想到解决过程中遇到了很多坑,所以觉得有必要写一篇博客记录一下这个坑。

问题产生原因

本来我们组的应用都有一个统一的网关服务进行接口请求转发,相关的配置都做好了,并不存在跨域问题。但前两周因为业务拓展,需要将部分应用拆分出来,部署到其他服务器上,这里面就包含我负责的两个应用。

其中一个应用,因为是前后端不分离的项目,不存在跨域问题,所以部署起来比较顺利,直接打了一个jar包丢到服务器上面就顺利跑起来了。另一个项目则是前后端分离的项目,打jar包部署的过程倒时挺顺利的,可是当我把前端用nginx跑起来之后,却看到了类似下图这样一堆报错:

No 'Access-Control-Allow-Origin' header: 跨域问题踩坑记录-LMLPHP

No 'Access-Control-Allow-Origin' header: 跨域问题踩坑记录-LMLPHP

这一看就是跨域问题了。

解决过程

1、修改nginx配置(不起作用)

因为上一次遇到跨域问题,我就是通过nginx配置代理转发解决的,所以这次我首先想到的还是通过修改nginx配置来解决这个问题,所以我在nginx配置文件中添加了类似这样的配置:

server{
    listen 8888;
    server_name  192.168.1.100;

    location /{
        proxy_pass http://192.168.1.100:8080;
    }

    location /api{
        proxy_pass http://192.168.1.100:8081; // 以api开头的接口请求,全部转发到这里
}
}
11-30 19:33