最近在自己写前后端分离的项目,前台用 vue ,后台用 PHP 框架写接口(PhalApi),然后在 vue 中用 axios 调用 PHP 的接口,遇到了跨域请求的问题,在网上了找了各种解决方法,结果就是没解决了,最后还是自己捣鼓出来了,主要是因为我在修改 vue 项目中的 config/index.js 文件中这个配置时就是不好使,所以才不得已用的别的方法。
vue index.js 配置.png
你如果查询 axios 跨域的话应该也是这个方法,具体我就不解释了,然后我不管怎么设置,这个配置就是不好使,真的是把你气死,没办法,幸亏我是自己开发前后台,所以我还有第二种解决方法,就是从后台下手,我用的是
Phal 框架,然后我就用设置请求头的方式解决了这个问题
在项目的主入口文件中加入以下这行代码;
/public/index.php
// 设置允许 http://172.24.42.65:8000 这个地址跨域请求
header('Access-Control-Allow-Origin:http://172.24.42.63:8080');
因为我是在本地开发,一开始我设置的是
header('Access-Control-Allow-Origin:http://localhost:8080');
但是这个函数好像不会解析 localhost 所以我就替换成了 IP 地址,然后 vue 端的配置文件中,我也把服务器的默认打开端口从 localhost 改成了 172.24.42.63
/config/