首页 > 代码库 > 使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题
使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题
当游览器报这样的错时,表示你的请求需要跨域!
这里,我说的是使用webpack+vue-cli+vue-resource中跨域问题,
在config文件下面有index.js文件里有一个叫proxyTable的配置参数
proxyTable: {
‘/restful‘:{
target:‘http://xxxxx/member/service/‘,
changeOrigin:true,
pathRewrite:{//可以不写
‘^/restful‘:‘/restful‘
}
}
},
changeOrigin这参数设置为true的时候,就可以虚拟一个本地代理的服务接收请求这样就可以解决跨域问题了target是你请求接口的域名
接口调用的时候可以这么写
this.$http.post(commonUrl + "/restful/member?op=getMember&access_token=111", { op: ‘getMember‘, }).then(response => }, response => { }); },
有关于API proxy的说明,使用的就是这个参数。
https://vuejs-templates.github.io/webpack/proxy.html
这个参数主要是一个地址映射表,你可以通过设置将复杂的url简化,例如我们要请求的地址是api.xxxxxxxx.com/list/1,可以按照如下设置:
proxyTable: {
‘/list‘: {
target: ‘http://api.xxxxxxxx.com‘,
pathRewrite: { //可以不写
‘^/list‘: ‘/list‘
}
}
}
这样我们在写url的时候,只用写成 /list/1 就可以代表api.xxxxxxxx.com/list/1.
那么又是如何解决跨域问题的呢?其实在上面的‘list‘的参数里有一个changeOrigin参数,接收一个布尔值,如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求,这样就不会有跨域问题了,当然这只适用于开发环境。增加的代码如下所示:
proxyTable: {
‘/list‘: {
target: ‘http://api.xxxxxxxx.com‘,
changeOrigin: true,
pathRewrite: {
‘^/list‘: ‘/list‘
}
}
}
使用proxyTable 解决webpack+vue-cli+vue-resource中跨域问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。