Vue配置文件vue.config.js配置前端代理方式

当我们在开发Vue项目时,有时候需要通过前端代理方式来解决跨域的问题。在Vue项目中实现前端代理的方式有很多种,本文将详细介绍如何通过配置Vue的配置文件vue.config.js实现前端代理方式。

vue.config.js文件

vue.config.js是一个可选的配置文件,如果项目的根目录中存在该文件,则该文件会被@vue/cli-service自动加载。该文件需要导出一个对象或一个函数,用于设置webpack的配置项,以及其他一些项目相关的配置。在该文件中,我们可以通过配置devServer项来实现前端代理。

使用前端代理

具体来说,我们可以通过如下步骤来配置前端代理:

  1. 在项目的根目录下创建vue.config.js文件

  2. 导出一个对象,在对象中配置devServer项

javascript
module.exports = {
devServer: {
proxy: {
//配置代理服务器
'/api': {
target: 'http://localhost:3000', // 代理服务器的域名和端口号
ws: true, //websocket
changeOrigin: true, // 是否跨域
pathRewrite: {
'^/api': '' // 去掉api路径
}
}
}
}
}

在上述配置中使用了一个代理服务器,将以/api开头的请求代理到http://localhost:3000。

  • target:代理服务器的域名和端口号
  • ws:是否启用websocket跨域
  • changeOrigin:是否跨域
  • pathRewrite:代理的路径重写规则

  • 在Vue组件中使用代理

在Vue组件中,我们需要将接口请求的前缀改为/api,代理服务器就会将该请求代理到目标服务器。

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

示例一:实现代理服务器

在示例中,我们需要使用一个代理服务器来解决跨域问题。具体代码如下:

// server.js
const express = require('express')
const app = express()

app.get('/api/data', (req, res) => {
  res.json({msg: 'Hello World'})
})

app.listen(3000, () => {
  console.log('Server is running at http://localhost:3000')
})

运行该服务器,访问http://localhost:3000/api/data将会得到{msg: 'Hello World'}的响应。

接下来在Vue项目中,创建vue.config.js文件,配置如下所示:

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

在Vue组件中使用代理:

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

运行Vue项目,访问localhost:8080即可在控制台中看到{msg: 'Hello World'}的输出。

示例二:使用代理服务器

在示例中,我们需要使用一个已有的服务器来获取数据,但是该服务器存在跨域问题,需要通过代理服务器来解决。具体代码如下:

// server.js
const express = require('express')
const app = express()

app.use(express.static('public'))

app.use('*', (req, res) => {
  res.json({msg: 'Hello World'})
})

app.listen(3001, () => {
  console.log('Server is running at http://localhost:3001')
})

运行该服务器,访问http://localhost:3001 将会返回{msg: 'Hello World'}。

接下来,在Vue项目中,使用vue.config.js配置代理服务器:

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

在Vue组件中调用数据:

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

运行Vue项目,访问localhost:8080即可在控制台中看到{msg: 'Hello World'}的输出。由于使用代理服务器,请求将会被转发到http://localhost:3001/api,即http://localhost:3001,解决了跨域问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue配置文件vue.config.js配置前端代理方式 - Python技术站

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

相关文章

  • 关于单文件组件.vue的使用

    当我们使用Vue.js框架进行Web开发时,单文件组件(.vue)是Vue的一项非常重要的功能。它可以让我们更好地组织我们的代码,使得代码更整洁,更易于管理。下面是单文件组件的使用攻略: 什么是单文件组件.vue? 单文件组件是Vue.js框架提供的一种将HTML、CSS以及JavaScript代码整合在一个文件中的组件化方案。一个.vue文件中包含了三个部…

    Vue 2023年5月28日
    00
  • vue中如何实现变量和字符串拼接

    在Vue中实现变量和字符串拼接,最常用的方式就是使用插值表达式和模板字符串。 插值表达式 使用双大括号{{}}将变量与字符串拼接起来,如下示例: <template> <div> <p>{{ message }} World!</p> </div> </template> <scr…

    Vue 2023年5月27日
    00
  • VueX安装及使用基础教程

    VueX是Vue.js的状态管理库,它可以帮助我们在应用程序中管理共享状态。下面是VueX安装及使用基础教程的完整攻略。 安装 # 使用npm安装 npm install vuex –save # 使用yarn安装 yarn add vuex 使用 首先,在Vue.js中使用VueX,我们需要将其添加到我们的Vue.js应用程序中。可以使用以下代码在Vue…

    Vue 2023年5月27日
    00
  • javascript 导出数据到Excel(处理table中的元素)

    下面是详细讲解“javascript 导出数据到Excel(处理table中的元素)”的完整攻略,过程中将包含两个示例说明。 1. 简介 在 web 开发中,有时需要将 table 数据导出为 Excel 文件。本文将介绍如何使用纯 javascript 处理 table 中的元素,并将 table 数据导出为 Excel 文件。 2. 代码实现 首先,我们…

    Vue 2023年5月28日
    00
  • antd日期选择器禁止选择当天之前的时间操作

    首先,采用 antd 中的 DatePicker 组件可以实现日期选择器的功能,同时,针对我们需要的需求——禁止选择当天之前的日期,我们可以采用以下方法来进行实现。 在 DatePicker 中,我们可以通过设置 disabledDate 属性来禁用某些日期。这个属性可以接受一个函数作为参数,用于返回需要禁用的日期数组,或者一个布尔值用于判断是否禁用当前日期…

    Vue 2023年5月29日
    00
  • VUE3中watch监听使用实例详解

    标题:VUE3中watch监听使用实例详解 在Vue 3中,使用watch监听数据变化变得更加简单和高效。下面详细讲解Vue 3中watch的使用实例。 使用watch监听简单数据变化 定义数据和watch <template> <div> {{ number }} </div> </template> &lt…

    Vue 2023年5月28日
    00
  • Vue表格组件Vxe-table使用技巧总结

    Vue表格组件Vxe-table使用技巧总结 简介 Vxe-table是一款基于Vue.js的表格组件,提供了强大的分页、排序、编辑、导入导出等功能,可以快速应用于数据管理系统等场景。 本文将总结Vxe-table的常见使用技巧,包括数据渲染、插槽、操作按钮、事件监听等,帮助快速上手Vxe-table的使用。 安装 可以通过以下命令来安装Vxe-table:…

    Vue 2023年5月29日
    00
  • Vue项目部署后提示刷新版本的实现代码

    当我们部署 Vue 项目时,通常情况下,部署完成后用户需要手动刷新页面才能加载最新版本。为了提供更好的用户体验,我们可以使用一些方法来实现自动刷新页面的功能。以下是一些实现方法的示例说明。 方法一:添加版本号 第一种方法是通过添加版本号到静态资源文件来实现自动刷新页面。具体实现步骤如下: 在 Vue 项目中的 index.html 文件中添加版本号到静态资源…

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