• 小程序请求拦截,响应拦截


    前端在使用数据请求的时候,一般为了安全考虑都会添加请求头,以及token检验等操作,还有根据后端返回的不同状态进行不同处理,例如:后台返回token超时,我们就需要重新获取token,然后才能请求数据.

    首先是通用方法:就是参数有点麻烦,每次使用都需要传很多参数,并且很多都是重复的,不是很友好.

    export function wxPromise(fn) {
      return function (obj = {}) {
        return new Promise((resolve, reject) => {
          obj.success = res => {
            resolve(res)
          };
          obj.fail = res => {
            reject(res)
          };
          fn(obj)
        })
      }
    }

    然后优化一下,分别封装POST以及GET请求

    // 这是对post请求的封装
    export function post(url, data = {}) {
      return new Promise((resolve, reject) => {
        //网络请求
        //console.log(baseUrl)
        wx.request({
          url: baseUrl + url,
          data,
          method: 'POST',
          header: {
            "Content-Type": "application/json",
            'token': app.globalData.token,
            'openId': app.globalData.openid
          },
          success: function (res) {//服务器返回数据
          //console.log("cg")
            resolve(res);
          },
          fail: function (error) {
            //console.log("sb")
            reject(error);
          }
        })
      });
    }
    // 这是对get请求的封装
    export function get(url, data = {}) {
      return new Promise((resolve, reject) => {
        //网络请求
        wx.request({
          url: baseUrl + url,
          data,
          method: 'GET',
          header: {
            "Content-Type": "application/json",
            'token': app.globalData.token,
            'openId': app.globalData.openid
          },
          success: function (res) {//服务器返回数据
            resolve(res);
          },
          fail: function (error) {
            reject(error);
          }
        })
      });
    }

    然后我们在使用的时候就只需要传入url以及参数就可以了,如果有需要还可以在以上封装中对参数  以及后端返回的数据进行处理,还有状态的处理等,根据自己项目需要吧.

  • 相关阅读:
    [转]给定单链表,检测是否有环。如果有环,则求出进入环的第一个节点
    二叉树的后序遍历
    求二叉树叶子节点的个数
    随笔
    两个免费转换视频的软件,实现服务器端Video2FLV
    自制Flash FLV视频播放器
    Flash取得外部WEB参数的方法
    [转]javascript小技巧,超强推荐
    c#设计模式(转)
    ffmpeg和Mencoder使用实例小全
  • 原文地址:https://www.cnblogs.com/wgs-blog/p/14921462.html
Copyright © 2020-2023  润新知