uni-app 移动端口接口请求数据封装

//请求地址

const apiUrl = "http://xxx/xxx";

//公共的请求地址数据缓存选择其一

wx.setStorageSync("apiUrl", apiUrl);

// 封装微信请求方法

const request = (params) => {

    let url = params.url;

    let data = params.data;

    let method = params.method;

    let header = {

        "content-type": "application/json;charset=utf-8 ",

        "Authorization": 'Bearer ' + wx.getStorageSync("token")

    };

    // 鉴权验证,获取登录之后后端返回的token,存在即在头部Authorization写token,具体的看后端需求

    if (wx.getStorageSync("token")) {

        header.token = wx.getStorageSync("token");

    }

    return new Promise((resolve, reject) => {

        wx.request({

            url: apiUrl + url, //接口请求地址

            method: method, 

            data: data, // 请求参数

            header: header, // 头部

            success(res) {

                // 判断状态码---errCode状态根据后端定义来判断

                if (res.statusCode < 399) {

                    //401 token失效,需重新获取

                    if (res.data.code === 401) {

                        wx.showModal({

                            title: "提示",

                            content: "登录过期,请重新授权登录",

                            showCancel: false,

                            success(res) {

                                wx.removeStorageSync("token") //移除token

                                //跳转到指定页面

                            },

                        });

                        reject(res.data);

                    }

                    resolve(res.data);

                } else {

                    // 其他异常

                    switch (res.statusCode) {

                        case 404:

                            wx.showToast({

                                title: '未知异常',

                                duration: 2000,

                            })

                            break;

                        default:

                            wx.showToast({

                                title: '请重试...',

                                duration: 2000,

                            })

                            break;

                    }

                    reject("未知错误,请稍后再试");

                }

            },

            fail(err) {

                if (err.errMsg.indexOf('request:fail') !== -1) {

                    wx.showToast({

                        title: '网络异常',

                        icon: "error",

                        duration: 2000

                    })

                } else {

                    wx.showToast({

                        title: '未知异常',

                        duration: 2000

                    })

                }

                reject(err);

            },

            complete() {

                wx.hideLoading()

            },

        });

    });

};

module.exports = {

    apiUrl,

    request,

}

!!!个人封装经供参考

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值