如果要用Nginx解决前后端的跨域问题,这里的端口填写应该写8083吗?
docker run -d -p 8088:80 nginx
是不是应该换成我们网关的端口,如下:
docker run -d -p 8083:80 nginx
因为我发现按照视频的方式启动docker容器后并没有解决前后端的跨域问题,难道还是要专门写一个全局配置类吗?
6
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2024-04-10 17:57:10
同学你好,1、同学根据我们项目端口号进行调整就好,如果同学项目是8083端口,则进行修改即可。
2、如果按照视频方式启动Nginx容器后没有解决跨域问题,可能是因为Nginx配置中没有正确设置CORS头部。建议在Nginx配置文件中添加适当的add_header指令来允许跨域请求。例如:
server { listen 80; location / { # 允许所有来源进行跨域请求 add_header Access-Control-Allow-Origin *; # 如果需要,可以指定具体的来源 # add_header Access-Control-Allow-Origin http://your-frontend-origin.com; # 允许的请求方法 add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; # 允许携带的请求头 add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range"; # 对于预检请求,直接返回204状态码,不执行后续处理 if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'jwt_token,Keep-Alive,User-Agent,Authorization,DNT,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } # 其他配置... } }
3、在Docker中运行Nginx,同学可以使用docker exec命令来重新加载配置,例如:然后重新测试试一下
bashdocker exec -it <nginx-container-id> nginx -s reload
祝学习愉快!
Java工程师 2024版
- 参与学习 2020 人
- 提交作业 1249 份
- 解答问题 1203 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星