微信小程序请求非域名服务器报错,通常是因为未在微信公众平台配置合法域名或未开启调试模式。生产环境必须使用备案且 HTTPS 加密的域名,开发环境可在开发者工具中临时关闭校验。
先说结论:生产环境必须在微信公众平台后台配置 HTTPS 合法域名,开发环境可勾选不校验合法域名选项临时调试。
- 适合场景:开发阶段使用真机调试或本地测试,生产阶段必须完成域名备案与配置。
- 先准备:已备案域名、有效 HTTPS 证书、微信公众平台管理员权限。
- 验收:开发者工具控制台无域名报错,真机预览请求状态码为 200。
快速处理思路
开发阶段报错时,先在微信开发者工具中开启不校验合法域名选项验证代码逻辑。生产发布前,登录微信公众平台完成服务器域名配置,确保域名支持 HTTPS 且 TLS 版本符合要求。
为什么会这样
微信小程序出于安全考虑,强制要求网络请求必须指向已备案的 HTTPS 域名。官方文档明确规定,wx.request 等网络 API 的域名必须在公众平台配置,否则真机环境和体验版会拦截请求。
分步处理
第一步:登录微信公众平台,进入开发管理页面。找到开发设置选项卡,定位到服务器域名配置区域。
第二步:准备合法域名。确保域名已完成 ICP 备案,且部署了有效的 SSL 证书,支持 TLS 1.2 及以上版本。
第三步:填写域名信息。在 request 合法域名栏中填入域名地址,不要包含端口号除非非标准端口,保存配置。
第四步:开发者工具设置。仅在开发阶段,点击开发者工具右上角详情,勾选不校验合法域名、web-view 等选项。
怎么验证是否生效
打开微信开发者工具控制台,观察 Network 面板。若配置生效,请求状态码应显示 200 且无域名报错信息。使用真机预览功能扫描小程序码,确认手机端请求正常返回数据。
常见坑
直接使用 IP 地址请求会被拦截,小程序不支持 IP 形式的服务器地址。域名未备案或备案信息不一致会导致配置无法保存。HTTP 明文协议不被允许,必须使用 HTTPS 加密传输。域名后带默认端口 443 可能校验失败,建议省略端口号。
常见问题
本地开发可以使用 IP 地址吗
开发者工具中勾选不校验合法域名后可以使用 IP 地址调试,但真机预览和上线版本必须使用域名。
配置后多久生效
微信公众平台保存配置后立即生效,但客户端可能存在缓存,建议重启开发者工具或重新编译小程序。
子域名需要单独配置吗
需要单独配置,配置主域名不会自动包含子域名,每个使用的子域名都需填入服务器域名列表。
参考来源
微信小程序官方文档 - 网络 API - 域名配置:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html