文件位置: app/config.js
module.exports = {
baseUrl: 'http://localhost:8080', // ✅ 已配置为本地接口
// ...其他配置
}
微信小程序默认**不允许访问本地接口**(localhost 或 127.0.0.1),会报以下错误:
request:fail url not in domain list
// 或
request:fail -104:net::ERR_CONNECTION_FAILED
这是最简单快速的方法,适合本地开发调试。
app 目录确认配置生效
javascript // app/config.js 保持 baseUrl: 'http://localhost:8080'
重新编译
使用电脑的内网IP地址替代localhost,可以让手机访问电脑上的后端服务。
Windows系统:
```bash
# 命令行执行
ipconfig
# 查找类似这样的地址
IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
```
Mac/Linux系统:
```bash
# 终端执行
ifconfig
# 或
ip addr show
# 查找以 192.168.x.x 或 10.x.x.x 开头的地址
```
方法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', // 生产环境:线上域名 // ... }
检查后端配置(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); }
Windows防火墙:
- 控制面板 → Windows Defender 防火墙 → 高级设置
- 入站规则 → 新建规则 → 端口 → TCP → 特定端口 8080
- 允许连接
临时关闭防火墙测试:
```bash
# Windows(管理员权限)
netsh advfirewall set allprofiles state off
# 测试完成后记得打开
netsh advfirewall set allprofiles state on
```
使用内网穿透工具(如花生壳、ngrok、FRP)将本地服务映射到公网域名。
启动后端服务
bash # 确保后端运行在8080端口 cd RuoYi-Vue-master java -jar ruoyi-admin.jar
启动 ngrok
```bash
# Windows
ngrok.exe http 8080
# Mac/Linux
./ngrok http 8080
```
获取公网地址
Session Status online Forwarding https://abc123.ngrok.io -> http://localhost:8080 ^^^^^^^^^^^^^^^^^^^^^^^^ 这就是你的公网地址
修改配置
javascript // app/config.js module.exports = { baseUrl: 'https://abc123.ngrok.io', // ngrok提供的地址 // ... }
在微信小程序后台配置域名
https://abc123.ngrok.iojavascript // app/config.js module.exports = { baseUrl: 'http://xxx.vicp.fun', // 花生壳提供的域名 // ... } 修改 app/config.js,支持多环境自动切换:
// 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"
}
]
}
}
在首页显示当前使用的接口地址:
<!-- app/pages/index.vue -->
<template>
<view>
<!-- 开发环境提示 -->
<view v-if="isDev" class="dev-info">
<text>{{ envInfo }}</text>
</view>
<!-- ...其他内容 -->
</view>
</template>
<script>
export default {
data() {
return {
isDev: process.env.NODE_ENV === 'development',
envInfo: ''
}
},
onLoad() {
const config = getApp().globalData.config
this.envInfo = `环境:${config.appInfo.envDescription}\n接口:${config.baseUrl}`
}
}
</script>
<style>
.dev-info {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(255, 0, 0, 0.8);
color: white;
padding: 10rpx;
font-size: 20rpx;
text-align: center;
z-index: 9999;
}
</style>
# 进入后端项目目录
cd d:\project\急救转运\code\Api\RuoYi-Vue-master
# 启动后端(确保端口8080)
# 方法1: IDEA直接运行 RuoYiApplication.java
# 方法2: 命令行运行
mvn spring-boot:run
# Windows
ipconfig
# 找到类似这样的地址
以太网适配器 以太网:
IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
// app/config.js
module.exports = {
baseUrl: 'http://192.168.1.100:8080', // 改为你的IP
// ...
}
app 目录javascript // 在控制台执行 console.log(getApp().globalData.config.baseUrl) // 应该输出: http://192.168.1.100:8080 原因: 域名校验未关闭
解决:
- 微信开发者工具 → 详情 → 本地设置
- ✅ 勾选"不校验合法域名..."
原因:
1. 后端服务未启动
2. IP地址错误
3. 防火墙阻止
解决:
```bash
netstat -ano | findstr 8080
ipconfig
---
### 问题3: 真机调试无法访问
**原因**: 手机和电脑不在同一WiFi
**解决**:
1. 确保手机和电脑连接同一WiFi
2. 使用内网IP而非localhost
3. 检查防火墙设置
---
### 问题4: 跨域错误
**原因**: 后端未配置跨域
**解决**:
// ruoyi-framework/src/main/java/com/ruoyi/framework/config/CorsConfig.java
// 确保已配置CORS
```
app// 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 + 内网穿透 | ⭐⭐⭐ 复杂 |
config.js 中 baseUrl: 'http://localhost:8080'⚠️ 安全提醒:
- 生产环境必须使用HTTPS域名
- 不要将测试配置提交到代码仓库
- 使用 .env 文件管理敏感配置
⚠️ 性能提醒:
- 内网穿透会增加延迟
- 建议优先使用局域网调试
- 大文件上传建议使用直连
如有其他问题,请参考:
- 微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/
- uni-app官方文档:https://uniapp.dcloud.io/