收藏
回答

小程序通过ajax请求后端数据,最少20秒后才响应,这是什么怎么回事?

小程序前端通过请求ajax后端PHP接口:

// 前端小程序向后端请求数据 
getUserDataByOpenid: function (wx_openid) {
        var send_data = {
            wx_id: wx_openid
        }
        var that = this;
        var send_str = JSON.stringify(send_data);
        var path_str = config.DOMAIN + config.WEB_NAME + config.GET_USERDATABYOPENID_HOST;
        wx.request({
            method: "post",
            url: path_str,
            header: {
                'Content-Type': 'application/json'
            },
            data: send_str,
            success: function (res) {
                var arr = res.data;
                if (arr['error_info'] != "") {
                    return;
                }
                var user = res.data.data;
                save.set_local_userinfo('ss_user_id', user.user_id);
                app.globalData.userData = user;
                that.setData({
                    btnType: "primary"
                });
            },
            fail: function () {
                console.log('服务器异常');
                wx.showToast({
                    title: '服务器异常',
                    icon: 'none',
                    duration: 1500
                })
            },
            complete: function () {
                that.setData({
                    showButton: true
                });
            }
        });
    },

// 后端TP5接收请求的入口
    public function get_user_data_by_openid()
    {
        Log::record('进入时间:'.date("Y-m-d H:i:s"));

        $data_ary=[];
        $data_ary['error_info'] = "";
        $data_ary['data'] = "321";
        push_data($data_ary);
    }



每次请求到达后端入口,20秒以后服务器才输出日志。有时候小程序直接返回fail,报“服务器异常”。

我试着直接在chrome地址栏访问后端get_user_data_by_openid()接口,结果耗时21秒,如下图。

我想请问的是,这是什么原因?应该如何解决?谢谢。

最后一次编辑于  2020-09-19
回答关注问题邀请回答
收藏

2 个回答

  • "|、(ㅇxㅇ)
    "|、(ㅇxㅇ)
    2022-07-12

    请问这个问题解决了么,我最近也遇到了问题 一头雾水

    2022-07-12
    有用
    回复
  • blue
    blue
    2020-09-19

    确定不是接口问题吗 浏览器请求是好的吗

    2020-09-19
    有用
    回复 4
    • Explor Fu
      Explor Fu
      2020-09-19
      是好的,只是也要21秒,才返回。
      2020-09-19
      回复
    • blue
      blue
      2020-09-19回复Explor Fu
      那就是你接口有问题啊  数据多吗  中间是不是有sleep
      2020-09-19
      回复
    • Explor Fu
      Explor Fu
      2020-09-20回复blue
      中间没有sleep, 后台是用thinkphp5写的。
      2020-09-20
      回复
    • Explor Fu
      Explor Fu
      2020-09-20回复blue
      前台请求没有发送数据,只请求,后台接收到消息后,直接返回,从前台发送到后台返回运气好21秒可以返回给客户端小程序,运气不好后台接口一直收不到前台请求的消息。
      2020-09-20
      回复
登录 后发表内容
问题标签