Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题

news/2025/2/28 2:51:24/

在 Vue 3 + Vite 项目中,配置代理是解决开发环境中跨域请求问题的常见方法。通过在 Vite 的配置文件中设置代理,可以将前端请求转发到后端服务器,从而避免浏览器的同源策略限制。

1. 创建 Vue 3 + Vite 项目

首先,确保你已经安装了 Node.js。然后,使用以下命令创建一个新的 Vue 3 + Vite 项目:

npm create vite@latest my-vue-app --template vue

进入项目目录并安装依赖:

cd my-vue-app
npm install

启动开发服务器:

npm run dev

此时,开发服务器默认运行在 http://localhost:5173/

2. 配置代理

在 Vite 项目中,代理配置位于 vite.config.js 文件中。假设你的后端服务器运行在 http://127.0.0.1:3000,并且前端请求的路径以 /api 开头,你希望将这些请求代理到后端服务器。

编辑 vite.config.js,添加代理配置:

javascript">import { defineConfig } from 'vite';export default defineConfig({server: {proxy: {'/api': {target: 'http://127.0.0.1:3000',changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, ''),},},},
});

配置说明:

  • target: 代理的目标地址,即后端服务器的地址。
  • changeOrigin: 是否修改请求头中的 Origin 字段,通常设置为 true
  • rewrite: 重写请求路径,将以 /api 开头的请求路径去掉 /api 部分,转发到后端服务器。

3. 使用代理

前端代码中,发起请求时使用相对路径 /api,例如:

javascript">import axios from 'axios';axios.get('/api/user/info').then(response => {console.log(response.data);}).catch(error => {console.error(error);});

由于代理配置的存在,实际请求会被转发到 http://127.0.0.1:3000/user/info。这种方式可以有效避免跨域问题。

4. 注意事项

  • 代理配置仅在开发环境有效,生产环境需要通过其他方式处理跨域问题。
  • 确保后端服务器已启动,并且监听在配置的目标地址上。
  • 在使用代理时,前端请求的路径应与代理配置中的路径匹配。

通过上述配置,你可以在 Vue 3 + Vite 项目中成功设置代理,解决开发环境中的跨域请求问题。


http://www.ppmy.cn/news/1575396.html

相关文章

MySQL数据库SQL语句分析用户活跃情况

数据库建表语句 用户表 (users) CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY,register_date DATE NOT NULL,user_name VARCHAR(255) NOT NULL );这个表用于存储用户的基本信息, user_id 是用户的唯一标识, register_date 记录用户注册…

reCAPTCHA v3 实现笔记

一、概述 reCAPTCHA v3 是一种用于区分用户和机器人行为的安全验证服务。它通过在后台评估用户行为并返回一个分数来判断用户是否为真实用户。本文将介绍如何在前端和后端实现 reCAPTCHA v3 的集成。 二、注册和密钥生成 注册 reCAPTCHA v3 访问 Google reCAPTCHA 管理页面&a…

将夸克网盘的webdav挂载成本地磁盘驱动器时报错“405“

1 准备 alist挂载夸克网盘完毕。网页浏览器处可以访问夸克网盘里的文件。 2 故障现象 但是用RaiDrive或rclone等将之挂载成本地磁盘会报错"405"。 3 解法 alist的web管理页面上给“用户(一般是admin)->编辑->权限"里的webdav读…

uni-app集成sqlite

Sqlite SQLite 是一种轻量级的关系型数据库管理系统(RDBMS),广泛应用于各种应用程序中,特别是那些需要嵌入式数据库解决方案的场景。它不需要单独的服务器进程或系统配置,所有数据都存储在一个单一的普通磁盘文件中&am…

MySQL无法连接到本地localhost的解决办法2024.11.8

问题描述:我的MySQL可以远程连接服务器,但无法连接自己的localhost。 错误提示: 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因: 1. 检查环境变量是否正确:发现没…

【Linux 操作系统】进程管理 - 冯诺依曼体系|进程|环境变量|进程地址空间

目录 一、冯诺依曼体系:计算机世界的"生命循环系统" 二、操作系统:管理软硬件的"超人" 三、进程:计算机中的"平行宇宙" 三、环境变量:进程的"生存环境" 四、进程地址空间&#xff1a…

DeepSeek+谷云科技智能体,快速构建企业知识问答

想必最近大家的朋友圈、短视频平台都被DeepSeek技术刷屏了,教大家如何本地部署DeepSeek搭建本地知识库的经验内容也是数不胜数。但当你的企业兴冲冲想本地化部署时,却发现过程并没有那么简单。 大多数企业在本地部署DeepSeek时会选择在linux环境下&…

23贪心算法

分发饼干 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {int i0,j0;int count0;sort(s.begin(),s.end());sort(g.begin(),g.end());while(i<g.size()&&j<s.size()){if(g[i]<s[j]){i;j;count;}else…