在开发过程当中咱们请求数据有时候调用的是第三方接口,此时便会遇到一个问题:跨域限制。对于跨域问题的解释就不详细叙述了,要了解的请自行百度。通常跨域问题控制台会报这个错:

不少状况下后台会给咱们作请求代理,当后台没有帮你的时候只能本身解决了,Vue-cli这里我用的是webpack,那么咱们须要在webpack上作代理设置,具体步骤以下:
假设请求地址为http://baidu.com/img/upload/file。
1.在config/index.js文件的dev: { proxyTable: { }}写入要跨域代理的连接地址,以下图所示:

注意: '/upload'为匹配项,咱们匹配项写'/upload',那么当咱们npm run dev把本地服务跑起来后localhost:8080/upload/file就是咱们的代理地址了。
target参数填写被请求的地址,好比第三方接口,好比上面的http://baidu.com/img/upload/file;
changeOrigin参数是若是接口跨域须要配置这个参数;
pathRewrite参数是重写地址;
还有一个参数secure,若是是https接口须要配置这个参数;
2.在config/dev.env.js文件中配置,以下图所示:

3.在config/prod.env.js文件中配置,以下图所示:

注意:在此处的upload填写'"//baidu.com/img/upload/"',不须要写'http:',在最后切记要加上'/';
此时webpack的代理配置已经完成,须要重启服务,而后写请求函数就能够了,我使用的是axios搭配qs,因此请求函数为:
export const uploadFile = params => { return axios.post('/upload/file', qs.stringify(params)).then(res => res.data)};
请求函数各自写的不同,在此只是想表达请求函数第一个参数url要写'/upload/file',这样至关于请求http://baidu.com/img/upload/file。至此跨域问题已经解决,亲测有效。
如需转载请注明出处:
http://www.cnblogs.com/zishang91/p/8909900.html,以便有错误能够及时修改,如有错漏不足之处,请见谅而且指点,谢谢!!!