zoukankan      html  css  js  c++  java
  • 小程序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) {
    
            },
        })
    }
    

      

  • 相关阅读:
    最艰难的采访IT公司ThoughtWorks代码挑战——FizzBuzzWhizz游戏
    SQL Server 存储字符数较大字段的问题
    c# var的含义与用法
    ListBox和ComboBox绑定数据简单例子
    “C# 未在本地计算机上注册microsoft.Jet.OLEDB.12.0”的解决方案
    [转] c# 操作Word
    C++ Regsvr32订购具体解释
    数字计算的有序排列的号码出现二分法
    合作信息处理模型
    内存四个领域,变量声明和定义,注册,c内联汇编,auto,堆,不变,静态变量
  • 原文地址:https://www.cnblogs.com/web-leader/p/9516340.html
Copyright © 2011-2022 走看看