问题遇到的现象和发生背景
项目:Ruoyi-Vue-Plus
问题:我后端的地址明明是 localhost:8080 ,为什么在前端F12看到的是 localhost/dev-api/captchaImage 呢?
好神奇,是不是前端把后端的地址藏起来了…
项目:Ruoyi-Vue-Plus
问题:我后端的地址明明是 localhost:8080 ,为什么在前端F12看到的是 localhost/dev-api/captchaImage 呢?
好神奇,是不是前端把后端的地址藏起来了…
结论:并不是前端把后端藏起来了,而是中转的一个服务器把你的后端接口地址,中转成为了和你前端项目地址一样的一个地址。因为项目在开发环境中有一个供开发用的本地服务器,这个是由webpack-dev-server干的。他只是把你的前端项目以线上的形式部署在本地,并给你生成一个本地的访问地址。
因为这是为了解决前后端交互过程中,前端出现的一种跨域的解决方案,这是一种同源政策。
因为两个地址不一样,会导致浏览器触发同源政策引起跨域问题。
所以,需要使用这种反向代理
的机制来保持这个同源政策。
而反向代理也是最常用的一种跨域的解决方案。
附上webpack·dev·server的反向代理的文档:https://webpack.docschina.org/configuration/dev-server/#devserverproxy
上述是基于个人理解,如果对楼主有帮助,请点一下采纳。