vue proxy代理的^号问题?
今天遇到一个很头疼的问题,还有就是一直以来对vue的代理理解得还不是很透彻,花了大半天的时间,勉强理解了下。
转发 https://www.jb51.net/article/260242.htm
首先放链接,里面说的代理都是vue-cli3模式才能用,
如右图vue-cli2模式的拦截路径不支持写 ^,只能是写拦截头,
pathRewrite两个版本写法都一样兼容(都可以带^);
例如,要代理的接口路径为,/system-platform/sys/permission
vuecli3可以匹配/system-platform、/sys,/permission、/sy 都行,
vuecli2只能是第一个写起 /xxxxx 可以是/,/s,/sy,不能是/permission,/sys/
注意,这里的/sys,匹配的是/system-platform的/sys,很容易误解,,如果要匹配第二个sys,则要写成/sys/(因为两处字符相同,匹配的是位置靠前的字符,不是单词!!!)
注意,这里的拦截路径不一定为整个单词,与之匹配的都可以。例如/sy,/s,
还有:示例:系统有两批接口,但项目设置了基础路径写死为/system-platform
第一批接口为/sys/xxxxxx,要请求到/system-platform/sys/xxxxxx(刚好设置了基础路径请求正常)
第二批接口为/material-store/xxxx,要请求到/material-store/xxxx(因为设置了基础路径,请求变成/system-platform/material-store/xxxx,请求不成功)
然后进行代理,如下图,要把两批接口分别匹配拦截。如果第一个写/sys,那么匹配到的
还是/system-platform中的/sys,所以第一批请求正常,第二批/system-platform/material-store/xxxx还是被/sys匹配成功了,没有到第二个代理中去。所以要把两批接口分开代理的话,第一个匹配就要写成/sys/,匹配到路径中的第二个sys去,这样/material-store就不会被/sys影响
第一批接口
第二批接口
**