Docker部署后前端Nginx跨域失效:如何解决前端请求直接访问后端端口问题?

docker 部署后前端 nginx 跨域失效的解决方法

在 docker 中部署应用时,可能会遇到前端 nginx 跨域失效的问题。本文将介绍造成该问题的原因并提供相应的解决方案。

问题描述

根据用户提供的配置文件 default.config,前端请求仍然出现跨域错误。

原因分析

n

ginx 虽然已代理了后端 3344 端口的服务,但前端请求仍然直接访问 3344 端口。

解决方案

需要修改前端配置,在访问接口时不再添加 3344 端口。

具体修改步骤如下:

  1. 查看 nginx 代理配置

    location / {
        proxy_pass http://ip-addr:3344;
    }
  2. 修改前端请求配置

    在前端代码中,将类似于以下的请求 url:

    fetch('http://ip-addr:3344/api/users')

    修改为:

    fetch('/api/users')

通过修改前端配置,访问接口时不再包含 3344 端口,即可解决跨域失效的问题。