🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 微信小程序封装统一接口请求api数据 app.globalData 是我在app.js定的全局变量对象,大佬们可以参考 ~~~ constapp\=getApp() /\*\*  \* 网络请求封装  \* @paramurl url路径名 例:/books  \* @parammethod 请求方式 POST/GET/DELETE等  \* @paramdata 请求参数 string类型  \* @paramsuccess  成功回调  \* @paramfail 失败回调  \*/ functionrequest(url,method,data,success,fail){ if (!fail&&!success&&typeofdata\==='function') { success\=data; data\={} }elseif (!fail) { if (typeofdata\==='function') { fail\=success success\=data data\={} }elseif (typeofdata\==='object') { }else{ console.log("传递参数类型不正确"); } } vartoken\=app.globalData.userInfo?app.globalData.userInfo.token:''; varwxtask\=wx.request({     url:app.globalData.url+url+'?token='+token,     header:{ 'content-type':'application/json',//默认 application/json :数据序列化 },     method:method,     data:data, success:function(res){ switch (res.statusCode) { case200://请求成功 if (res.data.code\==4) { //重新登录,重新请求数据 login(url,method,data,success,fail); }elseif (res.data.code\==1||res.data.code\==2||res.data.code\==0) { success(res.data) }elseif (res.data.code\==3) { wx.showToast({               title:res.data.msg?res.data.msg:'网络不稳定,请稍后再试',               icon:'none',               duration:2000 }) // wx.showModal({content:res.data.msg?res.data.msg:'网络不稳定,请稍后再试',showCancel:false}) } break case204://成功请求空内容。 // success(res.data) break case301://永久跳转 break case302://临时跳转 break case303://临时跳转 break case404://空也没后退 wx.showToast({             title:res.data.msg?res.data.msg:'网络不稳定,请稍后再试',             icon:'none',             duration:2000 }) break case401://解决请求用户认证 break case403://请求失败code弹出提示 // wx.showModal({content:res.data.msg?res.data.msg:'网络异常-403',showCancel:false}) break case500://请求失败code调整 wx.showToast({           title:res.data.msg?res.data.msg:'网络不稳定,请稍后再试',           icon:'none',           duration:2000 }) // wx.showModal({content:res.data.msg?res.data.msg:'网络不稳定,请稍后再试',showCancel:false}) default: break } }, fail:function(res){ if (fail) { fail(res) } } }) returnwxtask; } functionlogin(url,method,data,success,fail){ // 登录 wx.login({ success:res\=>{ wx.request({           url:app.globalData.url+"/api/wxLogin",           method:"POST",           data:{             code:res.code,             nickName:"",             avatarUrl:"" }, success:res\=>{ app.globalData.userInfo\=res.data.response request(url,method,data,success,fail) } }) } }) } /\*\*  \* 请求封装-Get  \* @paramurl 请求地址  \* @paramdata 请求参数  \* @paramsuccess 成功回调  \* @paramfail  失败回调  \* @constructor  \*  \* 返回值为微信请求实例   用于取消请求  \*/ functionGet(url,data,success,fail){ returnnewPromise((resolve,reject)\=>{ returnrequest(url,"GET",data,success,fail) }) } /\*\*  \* 请求封装-Post  \* @paramurl 请求地址  \* @paramdata 请求参数  \* @paramsuccess 成功回调  \* @paramfail  失败回调  \* @constructor  \*  \* 返回值为微信请求实例   用于取消请求  \*/ functionPost(url,data,success,fail){ returnnewPromise((resolve,reject)\=>{ returnrequest(url,'POST',data,success,fail) }) } /\*\*  \* 请求封装-PUT  \* @paramurl 请求地址  \* @paramdata 请求参数  \* @paramsuccess 成功回调  \* @paramfail  失败回调  \* @constructor  \*  \* 返回值为微信请求实例   用于取消请求  \*/ functionPut(url,data,success,fail){ returnnewPromise((resolve,reject)\=>{ returnrequest(url,'PUT',data,success,fail) }) } /\*\*  \* 请求封装-Delete  \* @paramurl 请求地址  \* @paramdata 请求参数  \* @paramsuccess 成功回调  \* @paramfail  失败回调  \* @constructor  \*  \* 返回值为微信请求实例   用于取消请求  \*/ functionDelete(url,data,success,fail){ returnnewPromise((resolve,reject)\=>{ returnrequest(url,'DELETE',data,success,fail) }) } exports.get\=Get; exports.post\=Post; exports.put\=Put; exports.delete\=Delete; ~~~