收藏
回答

request请求包装

问题模块
API和组件


//请求包装

var myrequest = function (requestobj){

 if ((!requestobj.header ||requestobj.header.auth==null)){

   console.log("没有请求权限代码,默认无权限要求请求");

 }else{

   if ((requestobj.header.auth == 1 || requestobj.header.auth == 2) && !token) {//需要登录且未登录

     console.log("需要登录且未登录");

     login(myrequest, requestobj);//调用登录,登录完成后回调请求

     return;

   } else if (requestobj.header.auth == 2) {//需绑定手机号且未绑定手机号

     console.log("需认证且未认证");

     bind();//调用绑定手机号弹出框

     return;

   } else {

     console.log("通过验证,准备向服务器发送请求");

   }

 }

 wx.request({

   url: requestobj.url,

   data: requestobj.data,

   header: Object.assign({

     'content-type': 'application/json',

     'token': token

   }, requestobj.header),

   method: requestobj.method != null ? requestobj.method:"GET",

   success: function (res) {

     console.log(res.data);

     if (res.statusCode == 200||res.statusCode==304) {

       if (res.data.errcode == 0) {

         typeof requestobj.success == "function" && requestobj.success(res)

       } else {

         wx.showToast({

           title: res.data.errmsg,

           image: '/images/icon/error.png',

           duration: 3000

         })

       }

     }else{

       wx.showToast({

         title: "服务器响应失败",

         image: '/images/icon/error.png',

         duration: 3000

       })

     }

   },

   fail: function (res) {

     wx.showToast({

       title: "请求失败",

       image: '/images/icon/error.png',

       duration: 3000

     })

     typeof requestobj.fail == "function" && requestobj.fail(res)

   },

   complete: function () {

     typeof requestobj.complete == "function" && requestobj.complete()

   }

 })

}


//登录

var login = function (cb, requestobj){

 if (token){

   console.log("已登录");

 }else{

   console.log("调用登录");

   wx.login({

     success:function(res){

       if (res.code) {

         console.log(res.code);

         myrequest({

           url: requestUrl.loginUrl,

           data: { code: res.code},

           method:"POST",

           success: function (res){

             token = res.data.data.openid;

             console.log(token);

             typeof cb == "function" && cb(requestobj)

           }

         })

       } else {

         console.log('获取用户登录态失败!' + res.errMsg)

       }

     }

   })

 }

}


//一般请求

myrequest({

 url: requestUrl.indexRequestUrl,

 data: {

   showAgent: 1

 },

 header:{//0、直接请求    1、需登录请求    2.需登录且绑定手机后请求

   auth:1

 },

 success:function(res){

   console.log("私success");

   that.setData({

     Carousel: res.data.data.Carousel,

     Menu: res.data.data.Menu

   })

 }

});


最后一次编辑于  2017-12-08  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答