通过配置proxyTable,可解决axios跨域问题,从而不用后台改接口,实现请求接口数据 。
百度了很多方法,综合了一下有以下几种:
第一种:
在服务器配置(关键代码)
response.setHeader("Access-Control-Allow-Origin", "*");//允许其他域名访问
response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS" );//响应类型
response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");//响应头设置
在main.js里面添加
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
此方法没尝试,只是总结了一下
第二种:
通过配置proxyTable (项目的config文件夹下的index.js的dev: {....}里面)

target:‘这里写的是以http://或者https://开头的域名,如:https://www.baidu.com/ ’
然后在main.js里面直接调用

这里我get请求访问的域名就会是https://www.baidu.com/StairClassUrl/GetColumn
注意 这里定义的全局属性baseUrl 必须和 proxyTable 里面的 pathRewrite 定义的名称一致。

如果不一致还是会报错

然后关闭项目,重启(因为修改了config里面的文件,所以必须重启才能看效果!!!)就能成功接收到数据
只用了第二种,亲测有效
|