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
相关推荐
一 乐14 分钟前
学生宿舍管理|基于springboot + vue学生宿舍管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·助农电商系统
一人の梅雨15 分钟前
义乌购商品详情接口进阶实战:批发场景下的精准解析与高可用架构
java·服务器·前端
bin915319 分钟前
(文后附完整代码)html+css+javascript 弓箭射击游戏项目分析
前端·javascript·css·游戏·html·前端开发
翱翔的苍鹰27 分钟前
完整的“RNN + jieba 中文情感分析”项目的Gradio Web 演示的简单项目
前端·人工智能·rnn
有味道的男人1 小时前
如何使用招标网API获取项目详情?
java·服务器·前端
qq_406176141 小时前
深入剖析JS中的XSS与CSRF漏洞:原理、攻击与防御全指南
服务器·开发语言·前端·javascript
RFCEO1 小时前
HTML编程 课程六、:HTML5 新增多媒体标签
前端·html·html5·多媒体标签·嵌入音频、视频、动画
yanyu-yaya1 小时前
速学兼复习之vue3章节4
前端·vue.js·前端框架
Mr-Wanter1 小时前
vue 数据反显时数字/字母不换行导致的样式问题
前端·javascript·vue.js
梁萌1 小时前
vue项目从npm升级为pnpm
前端·npm·node.js