开发日记之前端代理2023-02-14

最近做练习demo的时候再一次遇到了前端代理请求,一开始的时候打算按照传统从已有的项目中将这部分的代码直接copy过来,但是突然想到现在用的是vite+ts+vue3的框架,之前已有的项目用的是vue-cli+js+vue2,不能直接照搬,于是乎先百度 [vite proxy http],出来了很多与之相关的内容,找了一个最靠谱的copy之。但后面发现好像并没有成功,因为浏览器依旧在提醒我跨域了。于是乎重新找了各种资料,浅浅地研究了一下前端代理请求这块儿,现在将收获记录在这里,以防我后面搞忘了又要去到处找原因。

首先说一下原理,它就像一个中转站,本来页面上的各种请求是直接到后端服务器上,但是因为跨域的原因(如果后端设置了请求头则没有这个问题,这里暂时不展开这个话题),后端接受不到这个请求,于是我们先访问本地的代理服务器(中转站),它再将本地的请求转发到后端服务器,服务器与服务器之前通信就不会有跨域的问题了。大概就是这样。

再来说下怎么运用到项目中。项目中使用axios的时候会设置一个baseUrl,假如为:'/api',发送请求的时候还会有一个具体的url,假如为:'/user/login',那么整个请求完整的路径就为:'/api/user/login',如果是后端处理跨域的话,这个时候直接将baseUrl设置成后端地址就好:'http://127.0.0.1:3000/',那么完整的请求就为:'http://127.0.0.1:3000/user/login',就可以直接访问了。如果需要设置代理,那么baseUrl就不能为一个具体的地址,而是对应代理中设置的key,即proxy对象的属性名,vite中清楚的说明了这点:(vite官网:https://cn.vitejs.dev/config/server-options.html#server-host)

image.png

vite中proxy的例子:


image.png

红框圈中的部分属于比较通用的例子,我也是用的这种配置方法。


image.png

此时项目中的请求的访问就变成了:http://localhost:3000/api/bar -> http://target/bar

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、企业项目开发流程 产品提需求 交互设计出原型设计 视觉设计出UI设计图 前端开发出页面模板 server端存取...
    Eric_V阅读 1,796评论 0赞 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,189评论 19赞 139
  • EasyWeb 前端开发文档 1.简介 基于jquery、layui的管理系统模板,单页面、响应式、支持mvvm、...
    蟹蟹爱吃蟹阅读 2,202评论 0赞 1
  • 安装nodejs 安装git 下载vue-admin-template(前端) 建议本项目为可作为管理系统的基础模...
    void_7bdf阅读 781评论 0赞 0
  • 第一步:创建集群 image.png 如果已经有了集群的界面如下 image.png 第二步:创建用户(注意记住帐...
    罗双海阅读 278评论 0赞 0

友情链接更多精彩内容