vue中的proxyTable反向代理(亲测有用)

下面我将为你详细讲解“vue中的proxyTable反向代理(亲测有用)”的攻略。

什么是proxyTable?

proxyTablevue-cli中用于开发环境的devServer选项的一个配置,可以进行反向代理,实现跨域请求的功能。它可以将本地请求转发到后端API接口进行处理,避免跨域问题和处理复杂的跨域请求头。

proxyTable的配置方式

在vue项目的config文件夹中的index.js文件中可以找到dev选项,可以看到proxyTable选项的默认配置如下:

  dev: {
    // ...
    proxyTable: {}
  }

其中,proxyTable是一个对象,可以通过配置它来进行反向代理。

例如,我们在本地开发时,需要请求接口http://localhost:3000/api,但是由于浏览器同源策略的限制,请求就会失败。这时我们就可以通过配置proxyTable将请求转发到后端API应用中,具体配置如下:

proxyTable: {
  '/api': {
    target: 'http://localhost:3000', // 目标主机
    changeOrigin: true // 将主机头的源更改为目标URL
  }
}

其中的'/api'就是我们本地想要请求的路径,target则是目标主机(后端API接口)的路径,changeOrigin则是将主机头的源更改为目标URL。这样,本地请求/api时就会被代理到http://localhost:3000/api,从而实现跨域请求的功能。

proxyTable的示例

示例一:跨域请求

例如,我们在本地开发时,需要请求接口http://www.example.com/api(假设该接口属于跨域接口),但是由于浏览器同源策略的限制,请求就会失败。这时我们就可以通过配置proxyTable将请求转发到后端API应用中,具体配置如下:

proxyTable: {
  '/api': {
    target: 'http://www.example.com', // 目标主机
    changeOrigin: true // 将主机头的源更改为目标URL
  }
}

然后在代码中发起请求:

axios.get('/api')
     .then(response => console.log(response))

这样,本地请求/api时就会被代理到http://www.example.com/api,从而实现跨域请求的功能。

示例二:本地虚拟数据

有时候我们需要在本地开发时,模拟后端API接口的数据,这时可以通过配置proxyTable来实现。

例如,我们在本地开发时,想要模拟后端API接口的数据,接口路径为http://localhost:3000/api/data,我们可以在本地定义一个虚拟的JSON数据文件,文件路径为mock/data.json,具体内容如下:

{
  "name": "小明",
  "age": 20
}

然后我们就可以在proxyTable中配置本地请求路径和虚拟JSON文件路径的关系,具体配置如下:

proxyTable: {
  '/api/data': {
    target: 'http://localhost:3000', // 目标主机
    changeOrigin: true, // 将主机头的源更改为目标URL
    pathRewrite: {
      '^/api/data': '/mock/data.json' // 路径重写
    }
  }
}

其中,pathRewrite是一个对象,需要指定一个正则表达式和替代路径。'^/api/data'是一个正则表达式,表示以/api/data开头的路径都会被替换为/mock/data.json。这样,当本地请求/api/data时,代理就会将请求转发到本地的虚拟JSON文件中,从而返回我们定义的虚拟数据。

总结

proxyTablevue-cli中用于开发环境的devServer选项的一个配置,可以进行反向代理,实现跨域请求的功能。它可以将本地请求转发到后端API接口进行处理,避免跨域问题和处理复杂的跨域请求头。我们可以通过示例来更好的理解它的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue中的proxyTable反向代理(亲测有用) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue2 与 Vue3 的数据绑定原理及实现

    Vue2 与 Vue3 的数据绑定原理及实现 Vue2 的数据绑定原理及实现 Vue2 的数据绑定原理: Vue2 的数据绑定使用的是 Object.defineProperty,基于数据劫持来监听数据变化。(即通过 getter 和 setter 对数据的读写进行劫持实现数据监听) Vue2 实现数据绑定的步骤: 初始化:生成观察者Watcher对象,收集…

    Vue 2023年5月27日
    00
  • Java上传文件到服务器指定文件夹实现过程图解

    下面是Java上传文件到服务器指定文件夹的完整攻略。 步骤一:前端页面准备 在前端页面上,需要使用HTML表单将文件上传到后端,代码如下: <form action="upload" method="post" enctype="multipart/form-data"> <inp…

    Vue 2023年5月28日
    00
  • vue-cli V3.0版本的使用详解

    vue-cli V3.0版本的使用详解 1. 什么是Vue CLI Vue CLI是一个官方开发的用于快速搭建Vue.js项目的脚手架工具。 Vue CLI V3.0版本是在Vue CLI V2版本的基础上进行升级,提供了以下新特性: 更快的构建速度 灵活的插件机制 更友好的用户体验 更好的自定义配置 2. Vue CLI的安装 在终端中运行以下命令,全局安…

    Vue 2023年5月28日
    00
  • Vue组件之极简的地址选择器的实现

    首先我们需要了解一下Vue组件的基本知识。 什么是Vue组件? Vue 组件是可复用的 Vue 实例,拥有自己的视图和行为。在 Vue 中,组件是基本的代码复用单元,一个页面可以由多个小的组件组成,每个组件封装了自己的代码和模板,可以单独的进行开发、测试和维护。 Vue组件的基本结构 一个 Vue 组件通常由模板、样式和逻辑组成。模板是组件的显示部分,样式是…

    Vue 2023年5月29日
    00
  • 为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)

    Vue3.0使用Proxy实现数据监听是因为Proxy功能比defineProperty更加强大,并且解决了defineProperty存在的一些问题。在Vue3.0中,使用Proxy来监听数据变化,是其性能以及安全性能得到提升的关键。 Proxy是一个代理器,可以用于创建对象的代理,从而实现对目标对象的控制和访问。与defineProperty相比,Pro…

    Vue 2023年5月29日
    00
  • 如何写好一个vue组件,老夫的一年经验全在这了(推荐)

    下面就来详细讲解如何写好一个Vue组件的完整攻略。 1. 确定组件功能和结构 在编写Vue组件前,首先需要明确组件的功能和结构。可以根据需求进行划分,例如按照布局组件、功能组件、业务组件等进行分类。 确定组件功能后,需要确定组件的结构。通常情况下,组件结构应该包括template、script和style三个部分。其中,template部分负责渲染页面,sc…

    Vue 2023年5月27日
    00
  • 使用vscode 开发uniapp的方法

    使用 VS Code 开发 uni-app 的步骤如下: 第一步:创建 uni-app 项目 使用命令行工具或者 HBuilderX 创建一个 uni-app 项目,如果你还没有创建过 uni-app 项目,可以参考 uni-app 官方文档 第二步:安装必要的插件 在 VS Code 中安装以下插件: Vue Vue 3 Snippets Vetur un…

    Vue 2023年5月27日
    00
  • vue.js移动数组位置,同时更新视图的方法

    要移动 Vue 中的数组位置并更新视图,常用的方法是: 使用 splice 方法直接修改数组,再触发更新操作; 使用 Vue.set 或 this.$set 方法,更新数组指定索引值的数据并触发更新操作。 下面分别介绍这两种方法的使用。 1. 使用 splice 方法直接修改数组 最常见的移动数组位置操作就是将某个元素往前或往后移动,以 arr[i] 为例,…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部