VUE项目devServer.proxy匹配请求中的地址工作流程

在Vue项目的开发过程中,为了本地调试方便,通常会在vue.config.js 中配置 devServer。在devServer中配置proxy属性,可以将指向本地的请求(例如: http://localhost:8080/api/action) 代理到后端的开发服务器上(例如: http://localhost:8089/personal-management/action)。

js 复制代码
devServer: {
/** 接口代理 */
      proxy: {
        '/api': {
          target: 'http://localhost:8089/personal-management',
          changeOrigin: true,/** 是否允许跨域 */
          ws: false,//是否启用websockets,用不到可设为false
          pathRewrite: {//对路径匹配到的字符串重写
            "^/api": "",
            // 替换前缀'/api',即:请求到 http://localhost:8080/api/xxx 现在会被代理到请求 http://localhost:8089/personal-management/xxx, 例如 /api/user 现在会被代理到请求  http://localhost:8089/personal-management/user
          },
        }
      }
    }

当浏览器发起一个请求后, 前端拿配置项中的地址去匹配请求中的地址,如果请求的地址中包含配置中的地址,则匹配成功,匹配成功后,会将匹配到的地址及其后面的地址拼到target的后面,向后端服务器发起跨域请求。

举个栗子:

  1. 浏览器发起请求:http://localhost:8080/api/user
  2. 和配置项匹配成功后,将/api/user拼接到target的后面。
  3. 现在,对 /api/user 的请求会将请求代理到 http://localhost:8089/personal-management/api/user
  4. 如果后端接口中不包含/api,不希望传递/api,则需要重写请求路径 将浏览器发起的请求的请求URL中的 "/api" 替换为 ""
  5. 此时对 http://localhost:8080/api/user 的请求,前端会将请求代理到 http://localhost:8089/personal-management/user
相关推荐
步步为营DotNet几秒前
洞悉.NET 11:ASP.NET Core 10 在构建实时协作 Web 应用的技术实践
前端·asp.net·.net
Bigger2 分钟前
mini-cc 的技能系统:给 AI 装上“专业外挂”
前端·ai编程·claude
繁星星繁4 分钟前
LangChain 初探:模型调用、链式编排与运行机制
前端·chrome·langchain
z200509305 分钟前
【linux学习】Linux 软硬链接深度解析:从 inode 到目录硬链接的那些坑
前端·chrome
编程猪猪侠10 分钟前
基于uni-app-x 与 uni-app 的安卓与 H5 双向通信完整实现
android·javascript·uni-app
competes12 分钟前
数据查询方式最左匹配原则
java·大数据·前端·人工智能·windows
光影少年22 分钟前
react中的Context 为什么会导致性能问题?
前端·javascript·react.js
ZC跨境爬虫24 分钟前
跟着 MDN 学CSS day_48:深入CSS多列布局——像报纸一样组织内容
前端·css·学习
Z_Wonderful25 分钟前
react部署更新后旧 chunk 404、用户浏览器缓存旧页面的问题与(路由跳转使用相对路径而不是绝对路径的关系)分析,并提供解决方案
javascript·react.js·缓存