收藏
回答

小程序webview+H5嵌套的问题出现了接口访问失败,是不是小程序把网络请求的线程设置访问了?

import axios from 'axios'
import qs from 'qs';

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.withCredentials = true;
axios.defaults.timeout = 60000


export function postSpecial(url,params) {
  return new Promise((resolve, reject) => {
    axios.post( baseUrl1 + url, qs.stringify(params))
      .then(res => {
        resolve(res.data);
        if (res.data.isLogin == "N") {
          setStore('isLogin',false)
        }
      })
      .catch(err => {
        if (err.message == "Network Error" ) {
          Toast('网络在开小差');
        } else if (err.message.indexOf('timeout')!=-1){
          Toast.fail('连接超时');
        }
        reject(err);
      });
  });
};


结果就是网络请求获取的内容不稳定,偶尔会出现某一到两个请求超时的情况,但是实际上前端提出了请求并被记录了下来:

后台access.log 日志并没有收到前端发出的请求:

我现在怀疑是否是小程序webview的内核限制了访问?

至于微信给的回复我也是很生气,拖了3天让我自己去查,我还要查到什么地步?

网络我也查了,前端的配置我也查了,后端的代理我也查了,出现丢失是偶发性的。我还限制了访问的线程数量,还是会有此现象。

有没有技术开发人员解决一下啊,那么多大厂的小程序内嵌都没有遇到过这种问题么?给个解决的思路。

“给您带来的不便还请谅解”,怎么谅解? 这个项目不做了?

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

2 个回答

  • sun
    sun
    1天前

    请求超时,肯定是接口的问题,不会是平台的问题。

    自己监控一下接口性能呗,没准是接口响应太慢导致请求超时的。

    好了,实测就是你的网站接口性能的问题。打开首页,偶发接口能请求70000ms(70s)以上。

    1天前
    有用
    回复 3
    • Biaoac
      Biaoac
      1天前
      后台nginx的access.log中没有记录到请求的日志,说明没有收到请求,但是前台确实发送出去了,这个中间偶发性的丢失的两个去了哪里就不知道了,不好判断是哪里的问题
      1天前
      回复
    • sun
      sun
      1天前回复Biaoac
      已测试就是你的服务器的接口性能问题
      1天前
      回复
    • Biaoac
      Biaoac
      1天前
      我自己测了一下,确实有偶发性网络请求比较慢的情况,且Pending状态的请求没有被记录在日志中,我先查一下客户端的情况,非常感谢
      1天前
      回复
  • 那一抹微笑😊穿透阳光
    那一抹微笑😊穿透阳光
    1天前

    应该是你代码哪里的问题

    1天前
    有用
    回复 2
    • Biaoac
      Biaoac
      1天前
      代码上用的是vue,会在一个页面上异步同时进行6-10个网络请求,浏览器日志记录了下来,说明请求已经发送了,但是一直没有返回。
      1天前
      回复
    • 那一抹微笑😊穿透阳光
      那一抹微笑😊穿透阳光
      1天前回复Biaoac
      打断点,挨着挨着调试呗
      1天前
      回复
登录 后发表内容