概述

不管使用什么脚手架,配置代理都是绕不开的话题,server.proxy为开发服务器配置自定义代理规则。期望接收一个{ key: options }对象。如果 key 值以^开头,将会被解释为RegExpconfigure可用于访问 proxy 实例。官网地址

更多详细配置http-proxy

相关配置

vue3 项目中,找到vite.config.ts 文件,在其中进行 vite 的相关配置.下面展示 选项写法(可解决跨域问题

server: {port: 8080,proxy: {"/api": {target: "http://localhost:7001", // 所要代理的目标地址changeOrigin: true,//允许跨域ws: true,// 开启 websockets 代理secure: false, // 验证 SSL 证书rewrite: (path) => path.replace(/^\/api/, ""),// 重写传过来的path路径},},},

简要说明

前端跨域问题其实是一个安全问题,就是为了防止不同域名的服务之间进行互相访问,以避免恶意程序对后端资源进行非法获取。在开发的时候,我们就可以利用代理来把请求进行代理,把域名等改成一样的,这样就避免了跨越的问题。

上面配置的 后端地址为 http://localhost:7001 ,代理以 /api 开头的所有API 请求,并把它转发到http://localhost:7001

例如:前端请求地址一般为简写 /api/user,前端实际请求地址为http://localhost:7001/api/user

实际转发到后端的地址是省略了 /api,为http://localhost:7001/user


同时,也可以代理多个地址,例如

server: { proxy: {"/api": {target: "http://localhost:7001",changeOrigin: true,}, "foo": {target: "http://localhost:7002",changeOrigin: true,}},},

注意

配置vite.config.ts 后,记得重启项目,否则不会生效


文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长