vue的proxy配置的target域名不会覆盖掉axios的baseURL吗?

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覆盖掉呢?大佬们求教


回答:

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

以上是 vue的proxy配置的target域名不会覆盖掉axios的baseURL吗? 的全部内容, 来源链接: utcz.com/p/936126.html

回到顶部