微信小程序 wx.reqest 封装
export const request=(params)=>{ const baseUrl = "https://localhost:44369" var header = { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'cookie': wx.getStorageSync('cookie') }; return new Promise((resolve,reject)=>{ var app = getApp(); app.toastTotal++; wx.showToast({ title: 'loading', icon: 'loading' }); wx.request({ ...params, url: baseUrl+params.url, method: "POST", header: header, success:(result)=>{ console.log("request success,url:"+baseUrl+params.url); console.log(header); console.log(result); var error = result.data.error; if(error!=null && error.length>0) { console.error(error); } else{ var code = result.data.Code; var msg = result.data.Msg; //#TODO 判断未登录错误码,提示然后跳转到登录 if(code!=0) { wx.showToast({ title: msg, icon: 'error', duration: 3000 }) wx.redirectTo({ url: "/pages/login/login" }) } else{ var cookie = wx.getStorageSync('cookie'); if(cookie == null || cookie == "") { console.log("写入 cookie:"+ result.header["Set-Cookie"]) wx.setStorage({ key:"cookie", data: result.header["Set-Cookie"] }); } resolve(result.data) } } }, fail:(err)=>{ console.log("request fail,url:"+baseUrl+params.url); wx.showToast({ title: '接口调用失败', icon: 'error', duration: 3000 }); reject(err) }, complete:function(e){ app.toastTotal--; if(app.toastTotal<=0) { app.toastTotal=0; wx.hideToast(); } } }) }) }
啥也不说,先上代码。
主要是针对微信网络请求 wx.request 的一些封装。
success 里面处理逻辑如下:
1.判断请求是否异常(服务端返回的异常json 信息),有的话提示然后终止
2.判断是否登录,没有登录则跳转到登录页
3.判断业务逻辑码,业务逻辑吗正常,则执行,否则则提示、终止;