# 微信小程序本地接口调试配置指南
## 一、当前配置状态
### 1.1 后端接口地址配置
**文件位置**: `app/config.js`
```javascript
module.exports = {
baseUrl: 'http://localhost:8080', // ✅ 已配置为本地接口
// ...其他配置
}
```
### 1.2 问题说明
微信小程序默认**不允许访问本地接口**(localhost 或 127.0.0.1),会报以下错误:
```
request:fail url not in domain list
// 或
request:fail -104:net::ERR_CONNECTION_FAILED
```
## 二、解决方案(3种方法)
### 方案1:开发者工具中关闭域名校验(推荐用于开发调试)
这是最简单快速的方法,适合本地开发调试。
#### 步骤:
1. **打开微信开发者工具**
- 确保已安装微信开发者工具
- 导入项目:选择 `app` 目录
2. **关闭域名校验**
- 点击右上角"详情"按钮
- 切换到"本地设置"选项卡
- 勾选 ✅ **不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书**
3. **确认配置生效**
```javascript
// app/config.js 保持
baseUrl: 'http://localhost:8080'
```
4. **重新编译**
- 点击"编译"按钮
- 查看控制台是否有网络请求
#### 优点:
- ✅ 配置简单,立即生效
- ✅ 适合开发调试
- ✅ 不需要修改代码
#### 缺点:
- ❌ 仅在开发者工具中有效
- ❌ 真机预览时无效
- ❌ 正式版本必须配置合法域名
---
### 方案2:使用内网IP地址(推荐用于真机调试)
使用电脑的内网IP地址替代localhost,可以让手机访问电脑上的后端服务。
#### 步骤:
1. **查找电脑内网IP**
**Windows系统**:
```bash
# 命令行执行
ipconfig
# 查找类似这样的地址
IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
```
**Mac/Linux系统**:
```bash
# 终端执行
ifconfig
# 或
ip addr show
# 查找以 192.168.x.x 或 10.x.x.x 开头的地址
```
2. **修改配置文件**
**方法A:直接修改config.js(简单但不灵活)**
```javascript
// app/config.js
module.exports = {
baseUrl: 'http://192.168.1.100:8080', // 改为你的内网IP
// ...
}
```
**方法B:环境变量配置(推荐)**
```javascript
// app/config.js
module.exports = {
// 根据运行环境自动选择
baseUrl: process.env.NODE_ENV === 'development'
? 'http://192.168.1.100:8080' // 开发环境:内网IP
: 'https://api.yourdomain.com', // 生产环境:线上域名
// ...
}
```
3. **确保后端允许跨域访问**
检查后端配置(RuoYi框架默认已配置):
```java
// ruoyi-framework/src/main/java/com/ruoyi/framework/config/CorsConfig.java
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*") // 允许所有来源
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE")
.maxAge(3600);
}
```
4. **确保电脑防火墙允许访问**
**Windows防火墙**:
- 控制面板 → Windows Defender 防火墙 → 高级设置
- 入站规则 → 新建规则 → 端口 → TCP → 特定端口 8080
- 允许连接
**临时关闭防火墙测试**:
```bash
# Windows(管理员权限)
netsh advfirewall set allprofiles state off
# 测试完成后记得打开
netsh advfirewall set allprofiles state on
```
5. **手机和电脑连接同一WiFi**
- 确保手机和电脑在同一局域网
- 打开微信开发者工具 → 预览 → 扫码真机调试
#### 优点:
- ✅ 可以真机调试
- ✅ 团队成员可以共享调试
- ✅ 接近真实环境
#### 缺点:
- ❌ IP地址可能会变化
- ❌ 需要配置防火墙
- ❌ 仅限同一局域网
---
### 方案3:使用内网穿透工具(推荐用于远程调试)
使用内网穿透工具(如花生壳、ngrok、FRP)将本地服务映射到公网域名。
#### 3.1 使用 ngrok(免费且简单)
1. **下载安装 ngrok**
- 官网:https://ngrok.com/
- 下载对应系统版本
- 注册账号获取authtoken
2. **启动后端服务**
```bash
# 确保后端运行在8080端口
cd RuoYi-Vue-master
java -jar ruoyi-admin.jar
```
3. **启动 ngrok**
```bash
# Windows
ngrok.exe http 8080
# Mac/Linux
./ngrok http 8080
```
4. **获取公网地址**
```
Session Status online
Forwarding https://abc123.ngrok.io -> http://localhost:8080
^^^^^^^^^^^^^^^^^^^^^^^^
这就是你的公网地址
```
5. **修改配置**
```javascript
// app/config.js
module.exports = {
baseUrl: 'https://abc123.ngrok.io', // ngrok提供的地址
// ...
}
```
6. **在微信小程序后台配置域名**
- 登录微信公众平台:https://mp.weixin.qq.com
- 开发 → 开发管理 → 开发设置 → 服务器域名
- 配置 request合法域名:`https://abc123.ngrok.io`
#### 3.2 使用花生壳(国内稳定)
1. **下载安装花生壳**
- 官网:https://hsk.oray.com/
- 注册账号
2. **创建内网穿透映射**
- 内网主机:localhost
- 内网端口:8080
- 外网域名:系统分配(如 xxx.vicp.fun)
3. **修改配置**
```javascript
// app/config.js
module.exports = {
baseUrl: 'http://xxx.vicp.fun', // 花生壳提供的域名
// ...
}
```
#### 优点:
- ✅ 可以远程访问
- ✅ 稳定的域名
- ✅ 支持HTTPS
#### 缺点:
- ❌ 需要第三方服务
- ❌ 免费版有限制
- ❌ 可能有延迟
---
## 三、推荐配置方案
### 3.1 多环境配置(最佳实践)
修改 `app/config.js`,支持多环境自动切换:
```javascript
// app/config.js
// 环境配置
const ENV_CONFIG = {
// 开发环境
development: {
baseUrl: 'http://192.168.1.100:8080', // 修改为你的内网IP
description: '开发环境'
},
// 测试环境
test: {
baseUrl: 'http://test.yourdomain.com',
description: '测试环境'
},
// 生产环境
production: {
baseUrl: 'https://api.yourdomain.com',
description: '生产环境'
}
}
// 当前环境(手动切换)
const CURRENT_ENV = 'development' // 可选: development, test, production
// 导出配置
module.exports = {
baseUrl: ENV_CONFIG[CURRENT_ENV].baseUrl,
// 应用信息
appInfo: {
name: "民航调度系统",
version: "1.1.0",
logo: "/static/logo.png",
site_url: "http://ruoyi.vip",
// 环境信息(用于调试)
env: CURRENT_ENV,
envDescription: ENV_CONFIG[CURRENT_ENV].description,
// 协议(使用本地页面)
agreements: [
{
title: "隐私政策",
url: "/pages/mine/privacy-policy/index"
},
{
title: "用户服务协议",
url: "/pages/mine/user-agreement/index"
}
]
}
}
```
### 3.2 显示当前环境信息(调试用)
在首页显示当前使用的接口地址:
```vue
{{ envInfo }}
```
---
## 四、完整配置步骤(推荐流程)
### 步骤1: 启动后端服务
```bash
# 进入后端项目目录
cd d:\project\急救转运\code\Api\RuoYi-Vue-master
# 启动后端(确保端口8080)
# 方法1: IDEA直接运行 RuoYiApplication.java
# 方法2: 命令行运行
mvn spring-boot:run
```
### 步骤2: 查找电脑内网IP
```bash
# Windows
ipconfig
# 找到类似这样的地址
以太网适配器 以太网:
IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
```
### 步骤3: 修改配置文件
```javascript
// app/config.js
module.exports = {
baseUrl: 'http://192.168.1.100:8080', // 改为你的IP
// ...
}
```
### 步骤4: 微信开发者工具配置
1. **打开项目**
- HBuilderX → 运行 → 运行到小程序模拟器 → 微信开发者工具
- 或直接在微信开发者工具中导入 `app` 目录
2. **关闭域名校验**
- 详情 → 本地设置
- ✅ 勾选"不校验合法域名..."
3. **清除缓存重新编译**
- 工具 → 清除缓存 → 清除所有缓存
- 点击"编译"
### 步骤5: 验证配置
1. **检查网络请求**
- 打开调试器 → Network
- 登录系统,查看请求地址是否正确
2. **测试接口**
```javascript
// 在控制台执行
console.log(getApp().globalData.config.baseUrl)
// 应该输出: http://192.168.1.100:8080
```
---
## 五、常见问题排查
### 问题1: request:fail url not in domain list
**原因**: 域名校验未关闭
**解决**:
- 微信开发者工具 → 详情 → 本地设置
- ✅ 勾选"不校验合法域名..."
---
### 问题2: request:fail -104:net::ERR_CONNECTION_FAILED
**原因**:
1. 后端服务未启动
2. IP地址错误
3. 防火墙阻止
**解决**:
```bash
# 1. 检查后端是否启动
netstat -ano | findstr 8080
# 2. 检查IP是否正确
ipconfig
# 3. 测试后端是否可访问
# 浏览器打开: http://192.168.1.100:8080
```
---
### 问题3: 真机调试无法访问
**原因**: 手机和电脑不在同一WiFi
**解决**:
1. 确保手机和电脑连接同一WiFi
2. 使用内网IP而非localhost
3. 检查防火墙设置
---
### 问题4: 跨域错误
**原因**: 后端未配置跨域
**解决**:
```java
// ruoyi-framework/src/main/java/com/ruoyi/framework/config/CorsConfig.java
// 确保已配置CORS
```
---
## 六、不同开发工具的配置
### 6.1 HBuilderX
1. **运行到微信小程序**
- 菜单 → 运行 → 运行到小程序模拟器 → 微信开发者工具
2. **配置微信开发者工具路径**
- 工具 → 设置 → 运行配置
- 配置"微信开发者工具路径"
3. **manifest.json配置**
- 源码视图 → mp-weixin → appid
- 填写你的小程序AppID
### 6.2 直接使用微信开发者工具
1. **导入项目**
- 打开微信开发者工具
- 选择"导入项目"
- 项目目录:`app`
- AppID:使用测试号或你的AppID
2. **配置**
- 详情 → 本地设置 → 不校验域名
---
## 七、推荐配置(最终版本)
```javascript
// app/config.js - 完整配置示例
// 自动检测运行环境
const isDev = process.env.NODE_ENV === 'development'
const isMP = process.env.VUE_APP_PLATFORM === 'mp-weixin'
// 获取本地IP(需要手动配置)
const LOCAL_IP = '192.168.1.100' // ⚠️ 修改为你的电脑IP
// 环境配置
const ENV_CONFIG = {
// 本地开发
local: `http://${LOCAL_IP}:8080`,
// 测试环境
test: 'http://test.yourdomain.com',
// 生产环境
prod: 'https://api.yourdomain.com'
}
// 自动选择环境
let baseUrl = ENV_CONFIG.local // 默认本地开发
// 根据不同条件选择环境
if (process.env.UNI_PLATFORM === 'h5' && !isDev) {
// H5生产环境
baseUrl = ENV_CONFIG.prod
}
module.exports = {
baseUrl: baseUrl,
appInfo: {
name: "民航调度系统",
version: "1.1.0",
logo: "/static/logo.png",
site_url: "http://ruoyi.vip",
// 显示当前环境(开发时可见)
showEnv: isDev,
currentEnv: baseUrl,
agreements: [
{
title: "隐私政策",
url: "/pages/mine/privacy-policy/index"
},
{
title: "用户服务协议",
url: "/pages/mine/user-agreement/index"
}
]
}
}
```
---
## 八、总结
### 开发阶段推荐方案
| 场景 | 推荐方案 | 配置复杂度 |
|------|----------|-----------|
| 微信开发者工具调试 | 方案1 + localhost | ⭐ 简单 |
| 真机调试 | 方案2 + 内网IP | ⭐⭐ 中等 |
| 远程调试/演示 | 方案3 + 内网穿透 | ⭐⭐⭐ 复杂 |
### 快速开始(最简单方式)
1. **启动后端**: 运行 RuoYiApplication.java
2. **配置前端**: `config.js` 中 `baseUrl: 'http://localhost:8080'`
3. **微信工具**: 勾选"不校验合法域名"
4. **开始调试**: 点击"编译"
### 注意事项
⚠️ **安全提醒**:
- 生产环境必须使用HTTPS域名
- 不要将测试配置提交到代码仓库
- 使用 `.env` 文件管理敏感配置
⚠️ **性能提醒**:
- 内网穿透会增加延迟
- 建议优先使用局域网调试
- 大文件上传建议使用直连
---
如有其他问题,请参考:
- 微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/
- uni-app官方文档:https://uniapp.dcloud.io/