1. 说明
- 项目使用前后端分离部署
- 后端接口只开放 http 访问接口(不允许 https 访问)
- 前端使用域名访问(https 协议)
- 项目使用宝塔部署在linux 服务器上
2. 导致问题
前端调用后端接口报错(跨域),https 下的网址内无法访问http协议
3. 解决
在宝塔面板界面->网站->设置->配置文件 新增代理,把 https 协议转成 http 协议
location /api {
proxy_pass http://localhost:8088;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
https://域名/api/query 接口地址 会被自动切换到
http://localhost:8088/webapi/query
关键点在 /api
具体原理还不清楚,不管了,先记下来再说
本文描述了一个项目中遇到的跨域问题,由于后端接口仅支持HTTP,而前端使用HTTPS协议,导致前端调用后端接口失败。通过在宝塔面板上配置网站设置,增加一个代理规则,将HTTPS请求转换为HTTP请求,从而解决了这个问题。具体解决方案是在配置文件中添加一个location规则,将所有/api开头的请求代理到后端的HTTP接口。
7946

被折叠的 条评论
为什么被折叠?



