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

yizhihongxing

下面我将为你详细讲解“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日

相关文章

  • Vuex 模块化使用详解

    首先我们来介绍Vuex。 Vuex是一个专为Vue.js应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 对于大型的Vue应用程序,管理状态会变得复杂而混乱,因此使用Vuex是非常有帮助的。Vuex可以让我们更好地组织和管理应用程序的状态。 接下来,我们将详细介绍如何使用Vuex模块化。…

    Vue 2023年5月28日
    00
  • 详解vuex的简单使用

    详解vuex的简单使用 什么是vuex Vuex是Vue.js的状态管理库,在大型单页应用中,管理共享的状态是比较困难的,因为多个组件共享状态,会导致代码结构不易维护。而Vuex就是为了解决此类问题而诞生的。 Vuex采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex所存储的状态可以用之内的方法触发改变,且变化…

    Vue 2023年5月27日
    00
  • vue-cli中的:visible.sync是什么意思

    在Vue-cli中,:visible.sync 是一个指令,用于实现父组件与子组件之间的双向绑定。通过这个指令,可以实现在父组件中改变子组件的状态,并且子组件中的状态改变也能反映到父组件中。 下面是这个指令的应用示例: <!– 父组件 –> <template> <div> <child-component :v…

    Vue 2023年5月27日
    00
  • vue3.0如何使用computed来获取vuex里数据

    下面是一份Vue3.0如何使用computed来获取Vuex里数据的攻略: 1. 简介 在使用Vue的过程中,经常遇到需要自动计算属性的情况,而Vuex作为Vue的全局状态管理工具,也经常用于存储应用程序的状态。在Vue3.0及以上版本中,可以使用computed选项来获取Vuex里的数据,并自动计算属性,非常方便。下面将为大家详细介绍vue3.0如何使用c…

    Vue 2023年5月28日
    00
  • gojs实现蚂蚁线动画效果

    为了实现蚂蚁线动画效果,可以使用gojs库中的动画和数据模型功能。下面是实现该效果的完整攻略: 创建GoJS图表数据模型 蚂蚁线动画效果需要使用GoJS的Layout模块。在Layout模块的输入上,需要创建一个数据模型,以描述要排列的节点及它们之间的连接关系。数据模型可以由JSON对象创建,包含节点和联系人数组。示例: var data = { nodeD…

    Vue 2023年5月28日
    00
  • vue中常见的问题及解决方法总结(推荐)

    Vue中常见问题及解决方法总结 1. Vue中常见问题 1.1. Vue组件之间通信 在Vue中,通信是组件之间的一个重要问题。通信包括父子组件之间的通信、兄弟组件之间的通信,还有隔代组件之间的通信等。通信方式有很多种,包括props/$emit、$parent/$children、事件总线、Vuex等。 1.1.1. Props/$emit Props/$…

    Vue 2023年5月27日
    00
  • vscode配置vue下的es6规范自动格式化详解

    下面给您详细讲解“VSCode配置Vue下的ES6规范自动格式化”攻略。 1. 安装必要插件 在使用VSCode编写Vue项目时,需要安装以下插件: Vetur:Vue语法高亮及格式化 Prettier – Code formatter:代码格式化工具 ESLint:代码语法及规范检查插件 这三个插件的作用分别是:Vue语法高亮及格式化、自动代码格式化、代码…

    Vue 2023年5月28日
    00
  • 微信小程序中实现双向绑定的实战过程

    下面我来详细讲解“微信小程序中实现双向绑定的实战过程”的完整攻略。双向绑定是前端开发中常用的一种技术手段,它可以实现组件之间的数据同步,提高开发效率。 1. 数据绑定 微信小程序的数据绑定方式类似于Vue.js,而不同于React.js的JSX语法。其语法为{{}},示例如下: <view>{{message}}</view> 在js…

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