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


    前端在使用数据请求的时候,一般为了安全考虑都会添加请求头,以及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以及参数就可以了,如果有需要还可以在以上封装中对参数  以及后端返回的数据进行处理,还有状态的处理等,根据自己项目需要吧.

  • 相关阅读:
    Android Packaging Problem
    Dedecms中{dede:type}标签支持调用父级栏目名称
    DeDecms远程写入漏洞webshell (dedecms漏洞)
    Dedecms 目标仿站的学习视频
    关于前端JS走马灯(marquee)总结
    浏览器端如何使用VConsole.js调试代码?
    Firefox中input元素,不能重新获取焦点函数focus()
    Centos7 systemctl添加自定义系统开机服务
    织梦cms 内容模型 option下拉框 value 分离
    wdcp如何添加反向代理功能
  • 原文地址:https://www.cnblogs.com/wgs-blog/p/14921462.html
Copyright © 2020-2023  润新知