vue的proxy配置的target域名不会覆盖掉axios的baseURL吗?
let config = {
baseURL: process.env.VUE_APP_BASE_API,
timeout: 30 * 60 * 1000,
}
const _axios = axios.create(config)
devServer: {
host: "0.0.0.0",
port: 9529, // 端口号
https: false,
open: true,
hotOnly: true, // 热更新
proxy: {
'/geo': {
target: 'https://geo.datav.aliyun.com',
changeOrigin: true,
secure: false //如果是https接口,需要配置这个参数
},
},
disableHostCheck: true
},
this.$axios.get(`/geo/areas_v3/bound/100000_full.json`).then(res => {}).catch(() => {})
前两步是axios和跨域配置,第三步进行请求第三方数据时(请求的datav的地图),发现会报跨域错误,请求路径前缀依然是VUE_APP_BASE_API而不是"https://geo.datav.aliyun.com",但是当把axios里的baseURL注掉就可以正常的请求通了。
不理解为啥proxy里的target没有将axios的baseURL覆盖掉呢?大佬们求教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
proxy我理解为把/geo/xxx开头的替换成target/geo/xxx,你用baseurl后变成baseurl/geo/xxx后就匹配不上
devServer.proxy
是起了一个服务器A,所有进入到服务器A的请求,并且配置了proxy
都会被代理但是如果你
axios('https://baidu.com/geo/xxx')
你这请求打到了百度又没打到服务器A所以必须是请求服务器A:
axios('http://127.0.0.1:9529/geo/xxx')
或者axios('/geo/xxx')
没有写ip默认当前服务器所以
baseURL
配置为http://127.0.0.1:9529
或者不配置baseURL