微信小程序访问云服务器是一个常见的需求,通常用于从小程序向后端服务发送请求、获取数据或上传文件等。下面是详细的步骤和注意事项:
一、准备工作
1. 获取云服务器信息
你需要有以下信息:
- 服务器地址(域名或IP)
- 接口路径(如
/api/login) - 端口号(如 80 / 443 / 自定义)
- 协议类型:HTTP 或 HTTPS
⚠️ 微信小程序要求必须使用 HTTPS 协议。
二、配置服务器域名白名单(重要)
微信小程序出于安全考虑,不允许随意访问任意服务器接口,需要在微信公众平台配置域名白名单。
配置步骤:
- 登录 微信公众平台
- 进入【开发管理】 -> 【开发设置】 -> 【服务器域名】
- 在 request合法域名 中添加你的服务器地址(例如
https://yourdomain.com)
✅ 注意事项:
- 必须为 HTTPS 协议
- 不支持 IP 地址(除非备案)
- 不支持 localhost 和 127.0.0.1
- 不支持 HTTP(调试时可以开启不校验域名校验,但上线前必须关闭)
三、小程序中发起请求(wx.request)
这是最常用的 API,用于向云服务器发起网络请求。
示例代码:
wx.request({
url: 'https://yourdomain.com/api/login', // 请求的URL
method: 'POST',
data: {
username: 'test',
password: '123456'
},
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
console.log('请求成功:', res.data)
},
fail(err) {
console.error('请求失败:', err)
}
})
四、常见问题与解决方法
1. 请求被拦截或报错“不在合法域名列表中”
- ✅ 解决方法:检查是否已正确配置 request 合法域名
- ✅ 测试环境可勾选开发者工具中的 “不校验合法域名、HTTPS 证书”
2. SSL 证书错误
- ✅ 确保服务器部署了有效的 HTTPS 证书(推荐使用 Let’s Encrypt)
- ✅ 证书域名需与请求域名一致
3. 跨域问题(CORS)
- ✅ 这是服务器端问题,不是小程序的问题
- ✅ 服务器应设置响应头允许跨域:
Access-Control-Allow-Origin: *
4. 无法连接服务器
- ✅ 检查服务器是否运行正常
- ✅ 检查防火墙是否开放对应端口
- ✅ 检查 DNS 是否解析正常
五、推荐架构(前后端分离)
小程序 <--> 微信服务器 <--> 你自己的云服务器(Node.js / Java / PHP / Python 等)
你也可以结合微信云开发(CloudBase)来简化后端开发流程。
六、进阶建议
- 使用 Token 认证机制(如 JWT)进行身份验证
- 接口统一返回格式(如
{ code: 0, msg: '', data: {} }) - 使用封装好的请求库(如 axios 小程序版、自定义封装)
- 日志记录 + 错误上报机制
如果你能提供更具体的场景(比如你是用什么语言写的后端?用了什么框架?),我可以给你更详细的示例代码。
ECLOUD博客