前两天我遇到一个特别棘手的问题,问题呈现的样式大概是这个样子的前端
根据以往的经验看到XMLHttpRequest cannot load
这段代码天然想到的是跨域问题,跟服务端讲了这件事情以后,服务端就加上了支持跨域的代码,可是前端仍是调不到数据,而后查了不少资料,最后找到一种解决办法跨域
在config文件下面有index.js
文件里有一个叫proxyTable的配置参数restful
proxyTable: { '/restful':{ target:'http://xxxxx/member/service/', changeOrigin:true, pathRewrite:{ '^/restful':'/restful' } } },
changeOrigin这参数设置为true的时候,就能够虚拟一个本地代理的服务接收请求这样就能够解决跨域问题了
target是你请求接口的域名post
接口调用的时候能够这么写测试
this.$http.post(commonUrl + "/restful/member?op=getMember&access_token=111", { op: 'getMember', }).then(response => }, response => { }); },
若是this
proxyTable: { '/restful':{ target:'http://xxxxx/member/service/', changeOrigin:true, pathRewrite:{ '^/restful':'' } } },
'^/restful':'‘
restful后面是空的话那么接口就应该这么写spa
this.$http.post(commonUrl + "/restful/restful/member?op=getMember&access_token=111", { op: 'getMember', }).then(response => }, response => { }); },
上面我写的commonUrl主要是为了在传到生产环境的时候方便使用的一个全局变量代理
写一个全局的jsrest
在里面设置一个全局变量commonUrl
code
const IS_DEBUG = true //若是是测试环境就是true,若是是生产环境就是false const commonUrl = IS_DEBUG ? '':'http://xxxxx/member/service/'