美文网首页
数据交互之封装request请求(微信小程序篇)

数据交互之封装request请求(微信小程序篇)

作者: 何小鹏 | 来源:发表于2018-06-24 11:38 被阅读76次

    在前后端数据交互中,数据请求是一个很重要的环节,request请求也是出现在交互中的重点,进行请求方式的封装是为了减轻数据请求的体量,最大化进行代码的复用,也是面向对象编程的基础思想。

    //这个是一个小程序的全局变量设置,其中的url地址是在app.js中的 globalData设置中取出。
    
    var AppLestUrl = getApp().globalData.wxurl;
    
    //简单的函数封装
    /*url:表示请求地址,
    header:表示请求头数据组,
    cd:表示请求返回函数
    sc:表示请求返回的编码,(可根据后台返回编码的复杂程度来改变)
    */
    //GET请求方式
    function getReq(url,header,cb,sc) {
    //加载动画
     wx.showLoading({
       title: '加载中',
     }) 
     console.log(header);
     wx.request({
       url: AppLestUrl + url,
       method: 'GET',
       header: header,
    //正确请求流程
       success: function (res) {
         wx.hideLoading();
         console.log(res);
         var JsonData = res.data;
         var JsonCode = res.statusCode;
         return typeof cb == "function" && cb(JsonData, JsonCode);
       },
    //异常请求流程
       fail: function () {
         wx.hideLoading();
         wx.showModal({
           title: '网络错误',
           content: '网络出错,请刷新重试',
           showCancel: false
         })
         return typeof cb == "function" && cb(false)
       }
     })
    }
    
    //POST请求方式
    /*data:表示的是上传数据体*/
    function postReq(url, data, header,cb) {
      wx.showLoading({
        title: '提交中',
      }) 
        console.log(header),
        wx.request({
          url: AppLestUrl + url,
          header: header,
          data: data,
          method: 'POST',
          success: function (res) {
            wx.hideLoading(); 
            var JsonData = res.data;
            console.log(JsonData);
            var JsonCode = res.statusCode;
            return typeof cb == "function" && cb(JsonData, JsonCode)
          },
          fail: function () {
            wx.hideLoading();
            wx.showModal({
              title: '网络错误',
              content: '网络出错,请刷新重试',
              showCancel: false
            })
            return typeof cb == "function" && cb(false)
          }
        })
    
    }
    

    微信小程序里面request请求不像JavaScript里面的数据请求,在小程序里面必须要进行方法暴露,才可以在其他的js文件里面请求到先前封装的方法。

    在公共文件里面暴露封装方法

    module.exports = {
      getReq: getReq,
      postReq: postReq, 
    }  
    

    对于公共方法js的调用,里面的http.js就是你公共方法的js

     var HttpRequest = require("../../http.js"); //HTTP请求request封装 调用
    
      getReq: HttpRequest.getReq,//GET数据请求函数
      postReq: HttpRequest.postReq,//POST数据请求
    
    //GET请求
    HttpRequest.getReq(infoUrl, headmode, function (res,code) {
    console.log(res);
    })
    //POST请求
       HttpRequest.postReq(url, JsonData, headers,function (res,code) {
    console.log(res);
     })
    

    相关文章

      网友评论

          本文标题:数据交互之封装request请求(微信小程序篇)

          本文链接:https://www.haomeiwen.com/subject/uxmjyftx.html