vue.config.js如何配置代理
时间: 2025-05-22 21:21:59 浏览: 19
### vue.config.js 中配置 devServer proxy 解决跨域问题
在前端开发过程中,当遇到前后端分离的情况时,通常会出现跨域问题。Vue CLI 提供了一种简单的方式来通过 `vue.config.js` 文件中的 `devServer.proxy` 属性来解决这一问题。
以下是详细的配置说明:
#### 基本配置结构
在 `vue.config.js` 文件中定义 `devServer.proxy` 的基本形式如下:
```javascript
module.exports = {
devServer: {
proxy: {
'/api': { // 这里的 /api 是请求前缀,可以根据实际需求修改
target: 'http://localhost:5100', // 后端接口的实际地址
changeOrigin: true, // 是否改变源,默认为 false
pathRewrite: { '^/api': '' } // 路径重写规则
}
}
}
};
```
#### 参数详解
1. **`target`**:
定义目标服务器的 URL 地址。例如,在上述例子中,所有的 `/api` 请求都会被转发到 `http://localhost:5100`[^2]。
2. **`changeOrigin`**:
设置为 `true` 表示允许更改请求头部的 Host 字段为目标服务器的域名。这对于处理某些后端服务的身份验证或权限校验非常重要[^3]。
3. **`pathRewrite`**:
使用正则表达式对路径进行重写。例如,将 `/api/home/data` 改写为 `/home/data`。这一步可以去掉多余的前缀以便于适配后端 API 接口的设计[^2]。
4. **其他可选参数**:
- **`secure`**: 默认值为 `false`,表示即使目标服务器使用 HTTPS 协议也不会强制验证证书的有效性。
- **`logLevel`**: 控制日志级别,用于调试代理行为。
- **`bypass`**: 自定义函数实现特定条件下的绕过逻辑。
#### 实际案例分析
假设当前项目的后端运行在一个独立的服务上(如 IP 地址为 `172.16.xxx.xxx`, 端口号为 `8085`),而前端应用启动在默认的 `localhost:8080` 下,则可以通过以下方式完成代理配置:
```javascript
const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig({
devServer: {
port: 8080,
proxy: {
'/api': {
target: 'http://172.16.xxx.xxx:8085',
changeOrigin: true,
pathRewrite: { '^/api': '/' },
},
},
},
});
```
在此情况下,任何以 `/api` 开头的请求都将自动转发至指定的目标服务器,并且客户端无需关心具体的主机名和端口信息[^3]。
---
### Axios 配合使用
为了进一步简化代码编写过程,可以在项目初始化阶段全局设置 Axios 的基础路径 (`baseURL`) 或者直接利用代理机制调整请求地址。例如:
```javascript
import axios from 'axios';
// 不再需要硬编码完整的 URL
axios.get('/api/home/data').then(response => console.log(response.data));
```
此时发送出去的真实 HTTP 请求会被映射到对应的后台服务上去执行[^2]。
---
阅读全文
相关推荐

















