• 小程序wx.request请求封装


    // 展示进度条的网络请求
    
    // url:网络请求的url
    // params:请求参数
    // message:进度条的提示信息
    // success:成功的回调函数
    // fail:失败的回调
    function requestLoading(url, params, message, success, fail, method = 'get') {
        // console.log(params)
        wx.showNavigationBarLoading();
        if (message != "") {
            wx.showLoading({
                title: message,
            })
        }
        var sessionid = wx.getStorageSync('wx_outin') || wx.getStorageSync('wx');
    
        if (sessionid != "" && sessionid != null) {
            var header = {'content-type': 'application/x-www-form-urlencoded', 'Cookie': 'wx=' + sessionid}
        } else {
            var header = {'content-type': 'application/x-www-form-urlencoded'}
        };
    
        wx.request({
            url: url,
            data: params,
            header: header,
            method: method,
            success: function (res) {
                var headerStr = JSON.stringify(res.header);
                // 判断响应头cookie里是否有wx,若有则存储到wxCookie里
                if (sessionid == "" || sessionid == null){
    
                    if (headerStr.indexOf("wx=") > -1) {
                        var reg = /wx=(w+)[;|"]/;
                        var wxCookie = reg.exec(headerStr)[1];
                        wx.setStorageSync('wx', wxCookie);
                    }
                }
                // console.log(wx.getStorageSync('wx'))
                wx.hideNavigationBarLoading()
                if (message != "") {
                    wx.hideLoading()
                }
                if (res.statusCode == 200) {
                    console.log(res.data.stat)
                    if (res.data.stat==2){
                        wx.showModal({
                            title: '提示',
                            content: '账号已退出,请重新登录',
                            showCancel: false,
                            success: function (res) {
                                wx.redirectTo({
                                    url: '../regist/index'
                                });
                            }
                        })
                    }
                    success(res.data)
                } else {
                    typeof fail == "function" && fail()
    
                }
    
            },
            fail: function (res) {
                console.log(res);
                if (res.errMsg == 'request:fail ') {
                    wx.showModal({
                        title: '提示',
                        content: '当前网络状态差,请重试',
                        success: function(res) {
                            if (res.confirm) {
                                setTimeout(function () {
                                    requestLoading(url, params, message, success, fail, method);
                                }, 1000);
                            } else if (res.cancel) {
                                console.log('用户点击取消');
                                wx.redirectTo({
                                    url:'../regist/index'
                                });
                            }
                        }
                    })
                }
                wx.hideNavigationBarLoading();
                if (message != "") {
                    wx.hideLoading()
                }
                    typeof fail == "function" && fail()
            },
            complete: function (res) {
    
            },
        })
    }
    

      

  • 相关阅读:
    poj2478
    poj2376
    poj2192
    poj1062
    [HDOJ2639]Bone Collector II(第k优01背包)
    [HDOJ3466]Proud Merchants(贪心+01背包)
    [HDOJ5510]Bazinga(并查集)
    [POJ3264]Balanced Lineup(线段树,区间最值差)
    [HDOJ4325]Flowers(树状数组 离散化)
    [HDOJ5521]Meeting(最短路)
  • 原文地址:https://www.cnblogs.com/web-leader/p/9516340.html
Copyright © 2020-2023  润新知