vue使用反向代理解决跨域问题方案

使用反向代理可以解决vue应用中遇到的跨域问题。下面是具体的攻略:

1. 安装http-proxy-middleware

在vue cli 3的脚手架中,已经默认安装了http-proxy-middleware依赖,无需再次安装。如果是手动创建的vue项目,则需要使用npm或yarn进行安装:

npm install http-proxy-middleware --save-dev

2. 配置反向代理

在vue.config.js文件中,为webpack dev server服务配置反向代理(vue cli 3的脚手架中已经配置好了):

module.exports = {
  devServer: {
    proxy: {
      '/api': {  // 请求地址中包含/api的请求都会被转发到target,其中/api会被去掉
        target: 'http://localhost:3000',
        changeOrigin: true,  // 支持跨域
        pathRewrite: {
          '^/api': ''  // 将/api替换为空字符串
        }
      }
    }
  }
}

3. 在页面中使用代理

接下来,我们就可以使用代理进行请求了。在vue的组件中,使用相对地址请求:

axios.get('/api/data').then(res => {
  console.log(res.data)
})

以上代码中,axios会将请求发送到代理服务器中,并将地址从/api/data转换为http://localhost:3000/data来发送请求。服务器(Node.js)将处理请求并返回数据,最后由代理服务器将数据返回给前端。

示例说明

下面是两个示例说明,分别使用不同的反向代理方式。

示例1:代理本地Node.js服务器

在这个示例中,我们使用代理将请求发送到本地的Node.js服务器上。
假设Node.js服务器在http://localhost:3000上运行,而vue cli 3的开发服务器运行在http://localhost:8080上。我们可以这样配置反向代理(在vue.config.js文件中):

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

现在,我们可以使用相对地址发送到api请求,例如:

axios.get('/api/data').then(res => {
  console.log(res.data)
})

这将代理到http://localhost:3000/data并获得服务器数据。

示例2:代理外部API

在这个示例中,我们将请求代理到外部的API,以https://api.example.com/为例。

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'https://api.example.com/',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

在组件中,使用相对地址请求数据:

axios.get('/api/data').then(res => {
  console.log(res.data)
})

以上代码将代理到https://api.example.com/data处并返回数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue使用反向代理解决跨域问题方案 - Python技术站

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

相关文章

  • Vue.js用法详解

    Vue.js用法详解 简介 Vue.js是一款轻量级Javascript框架,其核心库只关注视图层(View)的渲染和交互,非常适合开发单页应用程序。Vue.js易学易用,且具有良好的灵活性和扩展性,因此备受前端开发者喜爱。 基本使用 以下是Vue.js的基本使用方法: 基本配置 在使用Vue.js前,需要引入Vue.js库: <script src=…

    Vue 2023年5月27日
    00
  • Vue 前端导出后端返回的excel文件方式

    Vue 前端导出后端返回的 Excel 文件是一个常见的需求,以下是一种完整的实现攻略。 确认后端返回的 Excel 文件格式 在实现 Vue 前端导出后端返回的 Excel 文件之前,我们需要先确认后端返回 Excel 文件的格式。通常情况下,我们可以使用两种方式来返回 Excel 文件: 1. 直接返回二进制流 后端直接将 Excel 文件的二进制流作为…

    Vue 2023年5月27日
    00
  • VUE 自定义组件模板的方法详解

    下面详细讲解一下“VUE 自定义组件模板的方法详解”的完整攻略。 一、前置知识 在学习自定义组件模板之前,需要了解以下基本的 Vue 相关概念: Vue 实例 组件 响应式系统 Vue 单文件组件 如果您对以上内容不熟悉,建议先去学习一下。 二、自定义组件 Vue 自定义组件是 Vue.js 提供的一个非常强大的功能。可以利用自定义组件实现代码复用,提高开发…

    Vue 2023年5月27日
    00
  • 如何用Idea或者webstorm跑一个Vue项目(步骤详解)

    下面是详细讲解如何用Idea或者Webstorm跑一个Vue项目的完整攻略。 步骤一:安装Node.js Vue.js是一个构建用户界面的渐进式框架,它依赖于Node.js。因此,第一步是在你的电脑上安装Node.js。如果你还没有安装Node.js,可以通过Node.js官方网站(https://nodejs.org/en/)进行下载和安装。 步骤二:安装…

    Vue 2023年5月27日
    00
  • Vue 中使用vue2-highcharts实现top功能的示例

    使用vue2-highcharts实现top功能的完整攻略分为以下步骤: 步骤一:安装vue2-highcharts 在项目中需要使用到vue2-highcharts,所以首先需要安装它。可以使用npm安装,命令如下: npm install –save highcharts@6.1.0 vue2-highcharts@0.11.3 安装完成后,在main…

    Vue 2023年5月28日
    00
  • Vue路由应用详细讲解

    Vue 路由应用详细讲解 Vue.js 是一个流行的前端 JavaScript 框架,它强大并且灵活,可以快速搭建前端应用。在 Vue.js 中,路由是一种实现前端页面切换的技术,通过路由可以实现前端应用的页面跳转。 基本的 Vue.js 路由配置 在 Vue.js 中,我们可以通过 vue-router 模块来实现路由功能。下面是一个基本的路由配置示例: …

    Vue 2023年5月27日
    00
  • vue3中如何使用ref和reactive定义和修改响应式数据(最新推荐)

    在 Vue3 中,我们可以使用 ref 和 reactive API 来定义和修改响应式数据。 使用 ref ref API 用于定义一个基本数据类型的响应式数据,例如数字、字符串、布尔值等。下面是一个例子: import { ref } from ‘vue’; const count = ref(0); // 定义一个名为 count 的响应式数据,初始值…

    Vue 2023年5月27日
    00
  • el-form-renderer使用教程

    El Form Renderer 使用教程 简介 el-form-renderer 是一款基于 ElementUI 组件库的渲染器,可以根据配置动态生成表单。本文将详细讲解如何使用 el-form-renderer。 安装 可以通过 npm 或 yarn 进行安装: npm install el-form-renderer –save yarn add e…

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