收藏
回答

wx.request(局域网下)报fail url not in domain list 怎么解决?

小程序是在局域网下使用(非局域网要在mp后台配置ssl证书使用https的url,并且域名要备案等等),wx.request 配置的url 使用的是http://ip:port/api。并且在微信小程序开发工具中-详情-本地设置中勾选了“不校验合法域名,web-view(业务域名),TLS版本以及HTTPS证书”。

报这个错误的情况目前有两种:

1.在部分机型中出现,目前已知:红米node11,华为nova 9 pro ,VIVO V77e 等等;在小程序报错的手机中使用浏览器中访问api没问题,应用app里使用api也没问题,只有微信小程序会报错。

2.网络环境稍微复杂一点,使用的是两级路由,api服务端在一级路由,手机连接的是二级路由。手机微信小程序访问api,在正式版(线上版)不开调试的体验版中会报这个错误;在开发版和打开调试的体验版可以正常使用,不报错。

目前,查看社区以及官方回答的部分解决方法,测试均无效。

1.删除小程序重新打开(没用)

2.开启位置服务(没用)

3.清空小程序缓存(没用)

官方唯一给的解决方案 目前看都没用,请问官方和遇到果类似问题的社友,有无可行的解决方案?

回答关注问题邀请回答
收藏

5 个回答

  • 睡前原谅一切
    睡前原谅一切
    2023-02-22

    红米node11,华为nova 9 pro ,VIVO V77e 都是你们的测试机么?

    2023-02-22
    有用 1
    回复 13
    • kuerjinjin
      kuerjinjin
      2023-02-22
      不是,是客户的手机
      2023-02-22
      回复
    • 睡前原谅一切
      睡前原谅一切
      2023-02-22回复kuerjinjin
      问题不就来了?你IDE配置的不校验域名 只针对于开发版,客户能访问你们的开发版么?
      2023-02-22
      1
      回复
    • 睡前原谅一切
      睡前原谅一切
      2023-02-22回复kuerjinjin
      而开启调试模式 就是开启不校验域名,所以可以访问
      2023-02-22
      回复
    • 睡前原谅一切
      睡前原谅一切
      2023-02-22回复kuerjinjin
      所以局域网访问你本地服务 也需要用户访问的是开发版才行,不然你只能将服务部署到ecs上,然后搞个域名
      2023-02-22
      回复
    • kuerjinjin
      kuerjinjin
      2023-02-22回复睡前原谅一切
      ⊙﹏⊙b汗,这个设置只是在开发版里有效?我一直以为是设置了影响整个小程序。
      2023-02-22
      回复
    查看更多(8)
  • ☀靓果果☀
    ☀靓果果☀
    2023-09-06

    目前解决了嘛?

    2023-09-06
    有用
    回复
  • H1HAO 🇨🇳
    H1HAO 🇨🇳
    2023-02-22

    1.打开调试能不能访问,如果可以就是域名问题

    2.如果不可以请查看是不是在同一个网络下,因为你没说是不是穿透的ip地址

    3.没穿透就连接同一个网络在开调试(测试阶段调试必开,除非使用线上地址并且备案和配置安全域名)

    2023-02-22
    有用
    回复 1
    • kuerjinjin
      kuerjinjin
      2023-02-22
      是这样,我们小程序的使用场景是客户需要自己去选择wifi配置ip端口,在客户的局域网内使用,不是使用我们本地固定的ip做外网穿透,让客户来访问。而且这个使用ip加端口的方式在大部分的手机上用都是可以的,同一环境下,相同的配置,只有部分手机报这个错误。
      2023-02-22
      回复
  • ???
    ???
    2023-02-22

    整个https域名,配置合法域名,开发工具和体验版的开发调试正式都是不生效的

    2023-02-22
    有用
    回复 3
  • Pepsi
    Pepsi
    2023-02-22

    1. 将局域网内的URL添加到小程序开发者工具的request合法域名白名单中。

    2. 将小程序的request域名改为`*.local`,这样就可以访问局域网内的URL了。

    3. 设置代理服务器,让小程序的请求先转发到代理服务器上,再由代理服务器转发到局域网内的服务器上。

    2023-02-22
    有用
    回复 2
    • kuerjinjin
      kuerjinjin
      2023-02-22
      你好,请问一下:1.我了解到直接使用http://ip:port/api填到合法域名白名单是不行,会报错:“域名协议头非法”,这个在 https://kf.qq.com/faq/1706236NjINj1706236VRZBR.html 有说明。2.尝试在http://ip:port后加”.local“行不通,然后是上面的报错。
      2023-02-22
      回复
    • haha
      haha
      2023-10-07回复kuerjinjin
      请问解决了吗
      2023-10-07
      回复
登录 后发表内容