在项目开发的时候,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们现在使用vue-cli进行项目打包的时候,我们在本地启动服务器后,比如本地开发服务下是 http://localhost:8080 这样的访问页面,但是我们的接口地址是 http://localhost:3000这样的接口地址,我们这样直接使用会存在跨域的请求,导致接口请求不成功,VUE通过proxyTable来解决,因此我们需要在打包的时候配置一下,我们进入 config/index.js 进行如下配置即可:
/*代理配置表,在这里可以配置特定的请求代理到对应的API接口*/ /* 下面的例子将代理请求 /api/getNewsList 到 http://localhost:3000/getNewsList*/ proxyTable: { '/api': { changeOrigin: true,// 如果接口跨域,需要进行这个参数配置 target: 'http://localhost:3000',// 接口的域名 pathRewrite: { '^/api': ''//后面可以使重写的新路径,一般不做更改 } }
配置好后,该如何使用呢?使用vue-resouce发送Ajax获取数据
this.$http.get('/api/getNewsList')//代替http://localhost:3000/getNewsList .then((res) => { this.newsList = res.data }, (err) => { console.log(err) })
配置好代理后如果请求不到数据,可以访问原本的服务器接口 http://localhost:3000/getNewsList,如果直接访问服务器接口可以请求到数据那么就是请求代理配置有问题,否则就是其它问题。
注意:配置好后,一定要npm run dev 重新启动项目!!!