vuecli3打包后出现跨域问题,前端配置拦截器无效的解决

yizhihongxing

如果在使用VueCLI3打包项目之后出现跨域问题,可以采用以下方法:

  1. 修改vue.config.js文件

在VueCLI3项目根目录下新建/vue.config.js文件,并加入如下代码:

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

上述代码代表可以在代码中使用'/api'路径来代替'http://localhost:3000'路径,实现了跨域请求。其中,changeOrigin为true表示开启(cors)跨域,pathRewrite表示将请求路径中的/api替换为空串。

示例

在代码中使用axios库请求数据时,可以以如下方式实现跨域请求:

axios.get('/api/data')
  .then((res) => {
    console.log(res.data)
  })
  .catch((err) => {
    console.log(err)
  })
  1. 修改webpack配置文件

可以通过修改webpack的配置文件来实现解决跨域问题。

找到webpack.dev.conf.js 或 webpack.prod.conf.js文件,在devServer中添加如下代码:

module.exports = {
  devServer: {
    before: app => {
      app.use((req, res, next) => {
        res.header('Access-Control-Allow-Origin', '*')
        next()
      })
    }
  }
}

上述代码表示允许所有域名请求,从而实现了跨域访问。

示例

可以在开发时通过使用些三方库,如http-proxy-middleware来实现跨域请求:

// 安装http-proxy-middleware
npm install http-proxy-middleware --save-dev

在发送请求时,可以使用如下代码实现跨域请求:

// src/main.js
import proxyMiddleware from 'http-proxy-middleware'

app.use(
  proxyMiddleware('/api', {
    target: 'http://localhost:3000',
    changeOrigin: true,
    logLevel: 'debug',
    pathRewrite: {
      '^/api': ''
    }
  })
)

上述代码表示将 /api 替换为 http://localhost:3000。在代码中使用 axios 库时,则可以使用如下代码:

// src/App.vue
axios.get('/api/data')
  .then((res) => console.log(res.data))
  .catch((err) => console.error(err))

以上两种方案均能够实现VueCLI3打包后出现跨域问题的解决,在使用时根据自己的需求来选用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vuecli3打包后出现跨域问题,前端配置拦截器无效的解决 - Python技术站

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

相关文章

  • rarcrack工具

    RarCrack工具攻略 RarCrack是一款用于破解RAR文件密码的工具。在本攻略中,我们将介绍如何使用Rarack工具破解RAR文件密码,并提供两个示例说明。 安装RarCrack 在使用RarCr之前,需要安装该工具。以下是在Ubuntu系统上安装RarCrack的步骤: 打开终端,输入以下命令,安装必依赖项: bash sudo apt-get i…

    other 2023年5月6日
    00
  • C++的原生数组你了解多少

    C++的原生数组是指在内存中预留一段固定大小的连续空间用于存储同种类型的数据元素。这种数据结构是C++的重要组成部分,掌握原生数组的使用可以提高程序员的编程水平。 声明与初始化 声明一个数组需要指出数组的类型和名称,还需要指定数组的大小。例如,声明一个包含10个整数的数组需要这样写: int arr[10]; 数组的元素可以在声明时就初始化。 int arr…

    other 2023年6月25日
    00
  • 关于c#:destdir和make的前缀

    以下是关于C#中destdir和make的前缀的完整攻略,包括基本知识和两个示例。 基本知识 在C#中,destdir和make的前缀是用指定生成的可执行文件和库文件的输出目录的。destdir是指定输出目录的环境变量,而make的前缀是输出目录的命令行参数。 在使用destdir和make的前缀时,需要注意以下几点: destdir和make的前不能使用,…

    other 2023年5月7日
    00
  • MySQL通过自定义函数实现递归查询父级ID或者子级ID

    MySQL 通过自定义函数实现递归查询父级 ID 或者子级 ID 的过程分为以下几步: 创建一个表用于存储数据,表结构应当包含一个主键和一个指向自己的外键,例如: CREATE TABLE `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `par…

    other 2023年6月27日
    00
  • 系统安全之加密与解密的应用技巧与使用方法

    系统安全之加密与解密的应用技巧与使用方法 前言 在网络时代,随着数据交换的普及与信息技术的发展,安全问题愈加突出。而加密技术是保护数据安全的重要手段,可以有效地防止数据被窃取和篡改,确保数据传输的机密性、完整性和可用性。本文将详细介绍加密解密的基本概念、分类和实际应用技巧,并提供一些示例说明,帮助用户深入了解加密解密技术,更好地保护数据安全。 加密与解密的概…

    other 2023年6月28日
    00
  • dicom医学图像处理:fo-dicom网络传输之c-echoandc-store

    以下是“DICOM医学图像处理:fo-dicom网络传输之C-ECHO和C-STORE”的完整攻略: DICOM医学图像处理:fo-dicom网络传输之C-ECHO和C-STORE DICOM(数字成像和通信医学)是医学图像中广泛使用的标准。在DICOM中,C-ECHO和C-STORE是两个常用的网络传输协议,用于检查DICOM设备之间的连接和传输图像。本攻…

    other 2023年5月7日
    00
  • 使用maven基本命令,打包包名问题

    使用Maven基本命令,打包包名问题攻略 Maven是一个流行的构建工具,用于管理Java项目的依赖和构建过程。下面是使用Maven的基本命令和解决打包包名问题的攻略。 1. Maven基本命令 以下是一些常用的Maven基本命令: mvn clean: 清理项目,删除生成的目标文件和临时文件。 mvn compile: 编译项目,将源代码编译成字节码文件。…

    other 2023年9月7日
    00
  • Win10系统电脑如何查看是32位还是64位

    Sure! Here is a step-by-step guide on how to check if your Windows 10 computer is running a 32-bit or 64-bit operating system: Open the Start menu: Click on the Windows icon locate…

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