由于自身不太懂后端的配置,只能对问题大致还原:
(1)微信小程序的资源放在客户的服务器上(小程序可能会给多个客户使用,所以每个客户的服务器上都分别存放这个小程序的资源);
(2)后端进行内网穿透代理:小程序只能有一个线上访问的域名,于是公司部署了一个中心服务器,将所有的访问转发到代理服务器即客户的服务器上;从客户服务器请求到资源再次通过中心服务器返回给前端;
(3)问题出现:前端进行登录操作,结果,报错 net:ERR_EMPTY_RESPONSE(错误:空响应),控制台的Preview和Response都为空。
问题排查:(1)特别奇怪的是,通过域名访问,会出现响应出错的情况;而通过ip访问,响应正常,就判断是不是域名解析错误造成的,经过后端排查,域名解析正常。因为中心服务器对代理进行了正常的转发,并且服务器成功收到了客户的代理服务器的响应数据。
(2)既然中心服务器拿到了数据,对浏览器进行响应的时候,浏览器却没有收到数据,并且报错,后台由此判断很可能是响应头的问题,造成数据解析出错。又一一对https的响应头进行排查,因为通过ip能正常响应,所以与ip访问的浏览器响应头进行对比。
问题所在:最终,后台发现是Transfer-Encoding这个罪魁祸首,具体解释https://developer.mozilla.org...
最后,小程序能正常访问了。
为什么通过ip访问不会出现这个问题,而用域名进行访问的时候,就出现编码出错,造成响应错误的原因,暂时未找到。如果有知晓的伙伴,谢谢告知。


哎吃鱼摆摆
4 声望0 粉丝