跨域问题
项目已经做了跨域处理,按照要求安装一般不会出现跨域问题
如果出现跨域问题可以按以下方式解决:
跨域问题排查
环境排查
检查环境是否达到安装要求
如果安装依赖或运行项目时报错,根据错误开启所需的 php 扩展和函数
比如 fileinfo 扩展,putenv、proc_open 函数等
重启服务
可以把 Nginx、PHP、MySQL 等服务重启
检查协议
前后端网站的协议需要同时为 http 或 https, 不能一个为 http,一个为 https
如果通过 IP+端口方式访问,也会出现跨域问题
请求头部
请求头部不能携带自定义字段,比如 token,需要放在请求参数中
token 方式
src/settings.js
js
tokenType: "param"; // token方式:header请求头部,param请求参数跨域解决方案
宝塔面板跨域配置
如果是使用宝塔面板部署,可以在宝塔面板中设置跨域配置
宝塔面板中设置跨域配置如下:
- 登录宝塔面板
- 点击“网站”->“PHP项目”
- 选择需要配置跨域的网站
- 点击“设置”->“其他设置”->“跨域配置”
- 开启跨域开关,并设置跨域参数
- 允许的域名:*
- 允许跨域的请求方法:GET,POST,PUT,DELETE,HEAD,OPTIONS
- 允许跨域携带的请求头:*
- 允许浏览器访问的响应头:*
- 点击“保存”
- 重启 nginx 和 php 服务
前后端同域名部署
前后端部署到同一域名,就是把前端打包好的文件夹放到后端 public 目录下
nginx 反向代理
前端项目 nginx 设置反向代理,把接口请求转发到后端项目。但是会加长接口请求路径,接口响应时间可能会有所增加。