之前一直有个问题,就是它到底是只代理那部分带有'/api'的,还是全都代理掉  答案是,只会代理'api'那部分,也就是你配置了代理的部分

发请求的时候,包括axios发完后,vue会检测你的所有请求,把符合你代理的那部分正则匹配到,然后代理,再发请求
 

 

这个地方是我搞错了,其实这个proxy好像是只能代理,当前项目根路径部分,如果我给axios设置了一个localhost:1234

那么就会发现,没有一个代理了,接口全挂了

说明它只会代理当前项目路径localhost:8080 ..........

不过那个倒是对的,就是只会代理'api'那部分,这个是对的

所以总的来说 对的有两点

1.只会代理'api'那部分

2.它只会代理当前项目根路径localhost:8080 

关于第2点可以看这个两个

首先,axios设置非当前项目路径的地址,于是接口都挂了,代理没成功

其次看这个,不设置axios的请求根路径(那么它默认就是项目根路径),然后会发现代理的部分都代理成功了,代理到了api的target来,请求的根路径代理成target了,没代理的部分,也就是没有写api去匹配上代理的,就用的项目根路径localhost:8080,跑不通

总结一下就是下面这张图

今天在项目里遇到,需要请求两个不同的地址的情况,一时没想到怎么办

后来想到一个好办法,

就是想下图这样,就可以在同一个项目,不同接口发请求到不同的服务器地址

axios不设置请求根路径默认就是项目根路径,设置了就是设置的那个路径

 

之前还不是很明白,今天这么一弄,感觉proxy这样弄,特别像ngnix....叫它小ngnix把,哈哈

 

 

 

Logo

前往低代码交流专区

更多推荐