返回知识库

微信小程序 · 账号与数据

服务器域名白名单Server Domain Allowlist

小程序只能请求后台登记过的服务器域名,而且必须是 https / wss + 已备案域名,不能用 IP 或 localhost;开发者工具和调试模式会跳过校验,所以要在真机关调试时验收。

开发者工具里全绿,手机上全红:把 5 个请求修到真机能用

上面切运行环境,中间是请求列表,下面是小程序管理后台的服务器域名配置。失败行的「怎么修」会告诉你是地址本身不合规,还是只差加进白名单。

任务:花店小程序在开发者工具里一切正常,扫码到手机上就请求失败。让 5 个请求在真机、关闭调试时全部通过。

Network · 开发者工具(不校验)✓ 5/5
  • request
    登录http://localhost:3000/api/login
    ✓ 200 · 没校验域名
  • upload
    上传头像http://47.98.x.x/upload
    ✓ 200 · 没校验域名
  • request
    订单列表https://api.flower.cn/orders
    ✓ 200 · 没校验域名
  • download
    下载海报https://img.newcdn.io/a.png
    ✓ 200 · 没校验域名
  • socket
    客服聊天wss://chat.flower.cn
    ✓ 200 · 没校验域名
小程序管理后台 → 开发管理 → 开发设置服务器域名

(空)

(空)

(空)

(空)

  1. ✓开发者工具(不校验):全绿
  2. 2真机关调试:一片红
  3. 3真机开调试:又变绿(假象)
  4. 4配好白名单:关调试也全绿

第 1 步:现在是开发者工具、勾着「不校验合法域名」。看请求列表,然后切到「真机预览」。

知识点:面板上刚看到的几件事

只做命名,不再重复操作。

  • 白名单机制:小程序只能请求后台「服务器域名」里登记过的域名,request、上传、下载、socket 各有一栏,分开配。
  • 协议:request / 上传 / 下载只收 https,socket 只收 wss;http 加不进去。
  • 必须是已 ICP 备案的域名;不能填 IP,也不能填 localhost。
  • 「本地能用」的假象:开发者工具可以勾「不校验合法域名」,真机打开调试模式也会放行;关掉调试才是用户看到的样子。
  • 开调试能用、关调试不行:先查域名有没有配进白名单,而不是让 AI 改业务代码。

什么时候要查白名单

症状几乎都是「换个环境就坏」。

  • 开发者工具正常,扫码真机或体验版请求失败、图片下载不了、聊天连不上。
  • AI 新接了一个第三方服务(地图、图片 CDN、外部接口):它的域名也要进白名单,还得已备案。
  • 不适用:真机关调试也全绿但数据不对,那是接口本身的问题,不是白名单。

怎么跟 AI 说、怎么验收

让 AI 交出一张域名清单,你去后台对着配。

  • 让 AI 列清单:「列出小程序里所有 request / 上传 / 下载 / socket 用到的域名,标明协议,不能有 IP 和 localhost」。
  • 开发阶段就在开发者工具里取消「不校验合法域名」,问题会提前暴露。
  • 验收:真机预览或体验版里关掉调试模式,把每个用到网络的功能点一遍。

正反例:手机上「请求失败」

同一个症状,只差在先查哪里。

正例「开调试能用、关调试不行」→ 先对照后台服务器域名,把 api.flower.cn 加进 request 合法域名

几分钟就定位:缺的是配置,不是代码。关调试复测,全部通过。

反例让 AI「修一下手机上请求失败」,然后只在开起调试的手机上验收

AI 改了一圈代码,你在调试模式下看着「好了」;发给用户后照样失败。

快速自测

AI 说接口已经部署好了,地址是 http://119.29.x.x:8080/api。你要把它配进 request 合法域名,下一步是?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。