在 docker 中部署应用时,可能会遇到前端 nginx 跨域失效的问题。本文将介绍造成该问题的原因并提供相应的解决方案。
问题描述
根据用户提供的配置文件 default.config,前端请求仍然出现跨域错误。
立即学习“前端免费学习笔记(深入)”;
原因分析
nginx 虽然已代理了后端 3344 端口的服务,但前端请求仍然直接访问 3344 端口。
解决方案
需要修改前端配置,在访问接口时不再添加 3344 端口。
具体修改步骤如下:
-
查看 nginx 代理配置
location / { proxy_pass http://ip-addr:3344; }
-
修改前端请求配置
在前端代码中,将类似于以下的请求 url:
fetch('http://ip-addr:3344/api/users')
修改为:
fetch('/api/users')
通过修改前端配置,访问接口时不再包含 3344 端口,即可解决跨域失效的问题。