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

这篇具有很好参考价值的文章主要介绍了VUE项目devServer.proxy匹配请求中的地址工作流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

如何理解正向代理:代理服务器代替客户端向服务器发起请求。隐藏客户端。
发起请求:代理服务器从客户端发出请求,向目标服务器发起请求。
响应数据:目标服务器响应请求,代理服务器接收请求,并转发给客户端。

日常使用的翻墙就是基于这个原理。

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的后面,向后端服务器发起跨域请求。
举个栗子:文章来源地址https://www.toymoban.com/news/detail-565328.html

  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

到了这里,关于VUE项目devServer.proxy匹配请求中的地址工作流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue设置proxy代理,如何去查看代理地址

    使用vue框架里的proxy代理解决跨域问题,有些时候也不清楚走没走代理,给调试带来很大的困难,现整理两套方案查看代理之后的真实地址 第一种,在vscode的终端查看,需要在vue.config.js中代理中设置logLeve: ‘debug’,这样在代理接口请求之后终端会有显示真实的接口地址 第二

    2024年02月12日
    浏览(38)
  • 简述vue项目中的两种请求方式(axios和vueResource)

    今天学习了vue的两种发送请求的方式,vueResource和axios,比较了两种方式的使用 VueResource模块发送请求 1. VueResource概述 VueJS的生态圈除了VueRouter之外,还有很多的插件,在网络请求中,vue是借助于vue-resource模块来进行异步请求,跨域请求。 vue-resource是Vue.js的一款插件,它可以

    2024年02月03日
    浏览(45)
  • 数据交互系列:简述vue项目中的两种请求方式(axios和vueResource)

    今天学习了vue的两种发送请求的方式,vueResource和axios,比较了两种方式的使用 VueResource模块发送请求 1. VueResource概述 VueJS的生态圈除了VueRouter之外,还有很多的插件,在网络请求中,vue是借助于vue-resource模块来进行异步请求,跨域请求。 vue-resource是Vue.js的一款插件,它可以

    2024年02月02日
    浏览(44)
  • 抓取网络请求Network中的响应JSON数据,不用JS逆向和RPC,python selenium+browser-proxy

    显然上面的红框是加密数据。   下面正式开始 首先要检查电脑是否安装了JDK8,高版本的好像不行,如果没有安装,则需要进行安装。这里不介绍了。下面下载两个东西: (1)python包的安装:pip3 install browsermob-proxy (2)组件下载地址:https://github.com/lightbody/browsermob-proxy/r

    2024年02月15日
    浏览(61)
  • 详解 Vue 3 使用了 Proxy 对象来替代 Vue 2 中的 Object.defineProperty

    在 Vue 2 中,响应式系统使用了 Object.defineProperty 来实现属性的劫持和监听。这种方式需要在对象上定义 getter 和 setter,以便在属性被访问或修改时触发相应的操作。 然而,Object.defineProperty 有一些限制和性能问题。它只能劫持对象的已有属性,无法劫持新增的属性,也无法劫

    2024年02月10日
    浏览(44)
  • php - fpm 请求达到max_children最大值后,新进入的请求工作流程

    偶然之间想了解下,php-fpm 请求达到max_children最大值后,新进入的请求怎么办?是抛出502还是等待前面的请求完成后,再将请求交给处理完毕的进程处理呢。 运行环境:LNMP php 版本:php8.1+ 首先要先了解nginx 和 php-fpm 的交互模式采用的是惊群现象。网上很多说是nginx-work将请求

    2024年02月10日
    浏览(30)
  • vue全家桶进阶之路48:Vue3 跨域配置devServer的参数和设置

    devServer 是一个用于配置开发服务器的选项对象。它可以用来配置服务器的各种选项,例如代理,端口号,HTTPS 等。 以下是一些常用的 devServer 参数和设置: port :指定开发服务器的端口号,默认为 8080 。 host :指定开发服务器的主机名,默认为 localhost 。 https :开启 HTTPS,可

    2023年04月21日
    浏览(43)
  • vue中封装服务器地址/接口与设置请求头

    设置请求头 首先创建一个放置服务器地址的js,如http.js,然后在http.js中引入axios import axios from \\\"axios\\\"; 如果没有axios,需要先安装,npm i axios或者yarn add axois,然后重启服务器 ...直接上代码 点击查看代码 我们在登录成功时会获取到类似这样一个结果 然后将里面的token存入本地存储 l

    2024年02月11日
    浏览(39)
  • electron项目打包之后显示空白页面以及发送http请求地址错误

            electron项目在开发阶段,因为使用webpack脚手架,启用了webServer提供的http服务,所以有路由功能,当我们运行npm run electron:serve的时候,最后可以直接加载http://localhost:8080。在app里面就可以显示页面。     当electron项目打包之后,成为桌面程序,这个时候就没有http服务支

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包