Skip to content

跨域问题

项目已经做了跨域处理,按照要求安装一般不会出现跨域问题
如果出现跨域问题可以按以下方式解决:

跨域问题排查

环境排查

检查环境是否达到安装要求
如果安装依赖或运行项目时报错,根据错误开启所需的 php 扩展和函数
比如 fileinfo 扩展,putenv、proc_open 函数等

重启服务

可以把 Nginx、PHP、MySQL 等服务重启

检查协议

前后端网站的协议需要同时为 http 或 https, 不能一个为 http,一个为 https
如果通过 IP+端口方式访问,也会出现跨域问题

请求头部

请求头部不能携带自定义字段,比如 token,需要放在请求参数中

token 方式
src/settings.js

js
tokenType: "param"; // token方式:header请求头部,param请求参数

跨域解决方案

宝塔面板跨域配置

如果是使用宝塔面板部署,可以在宝塔面板中设置跨域配置

宝塔面板中设置跨域配置如下:

  1. 登录宝塔面板
  2. 点击“网站”->“PHP项目”
  3. 选择需要配置跨域的网站
  4. 点击“设置”->“其他设置”->“跨域配置”
  5. 开启跨域开关,并设置跨域参数
    • 允许的域名:*
    • 允许跨域的请求方法:GET,POST,PUT,DELETE,HEAD,OPTIONS
    • 允许跨域携带的请求头:*
    • 允许浏览器访问的响应头:*
  6. 点击“保存”
  7. 重启 nginx 和 php 服务

前后端同域名部署

前后端部署到同一域名,就是把前端打包好的文件夹放到后端 public 目录下

nginx 反向代理

前端项目 nginx 设置反向代理,把接口请求转发到后端项目。但是会加长接口请求路径,接口响应时间可能会有所增加。

Apache-2.0 License