简单来说就是域不一样 需要跨域
咱们只要表面上域是一样的就行
比如你要访问 a.b.c/xx/xx 之类的
但是你本地程序测试时候 一般是 localhost 或者是 127.0.0.1
这俩明显就不是一个域
这个时候你只要在请求时候 把需要请求的地址改成 127.0.0.1/xx/xx
这样你俩表面是不就变成同源的了
但是 你改变请求地址之后 就找不到数据了不是
这个时候你再使用proxy 将你这个地址暗中再改回 a.b.c就行了
比如正常情况下我访问的是:a.b.c/xx/xx
本地调试时请求连接改成
axios.get(`http://127.0.0.1:3000/mainPath/xx/xx`).then(res=>{
console.log(res)
})
proxy:{
"/mainPath":
{
target: 'https://a.b.c',
pathRewrite: { '^/mainPath' : '/' }
}
},
mainpath这个路径仅仅作为标识符 没有实际意义 这样在访问
http://127.0.0.1:3000/mainPath/xx/xx
时候 检测到mainpath标识 对他进行改变指向
target为你指向的域的目标
pathRewrite负责修改 比如这里就负责取出mainpath这个无意义的标识符
这样跟你表面同源的胡乱地址 又偷偷指向了你需要请求的地址了
呵 表面兄弟