zoukankan      html  css  js  c++  java
  • 小程序封装 接口请求方式

    直接粘贴复制即可使用

    request.js

    const commonUrl ="http://47.98.206.11:4899"  //后端ip地址

    // post请求封装
    function postRequest(url, data) {
      var that = this;
      var token = wx.getStorageSync('token')
      var promise = new Promise((resolve, reject) => {
        var postData = data;
        wx.request({
          url: commonUrl + url,
          data: postData,
          method: 'POST',
          header: {
            'content-type': 'application/json',
            Authorization: token ? 'Bearer ' + token : ''
          },
          success: function(res) {
            // console.log(res,77)
            // 此处的code=0,只是个举例,有的可能是1等其他的,具体的看后台决定;
            //res.data.data也根据自己的后台返回层级决定,
            //有的可能是res.data.data.data等其他形式。
            //返回什么就相应的做调整
            if (res.data.code == 200) {
              resolve(res.data);
            }else if(res.data.code == -1){
              console.log(111)
            }else if(res.data.code == 'A0230'){
              wx.clearStorageSync()
            }else {
              // 请求服务器成功,但是由于服务器没有数据返回,
              //此时无code。会导致这个空数据
                        
              // 不下去,导致报错,所以还是要resolve下,这样起码有个返回值,
                        //不会被阻断在那里执行不下去!
              resolve(res.data);
              wx.showToast({
                title: res.data.msg,  // 标题
                icon: 'error',   // 图标类型,默认success
                duration: 1500   // 提示窗停留时间,默认1500ms
              })
            }
          },
          error: function(e) {
            reject('网络出错');
          }
        })
      });
      return promise;
    }
     
    // get请求封装
    function getRequest(url, data) {
      var that = this;
      var token = wx.getStorageSync('token')
      var promise = new Promise((resolve, reject) => {
        var postData = data;
        wx.request({
          url: commonUrl + url,
          data: postData,
          method: 'GET',
          header: {
            'content-type': 'application/json',
            Authorization: token ? 'Bearer ' + token : ''
          },
          success: function(res) {
            if ( res.data.code == 200) {
              resolve(res.data);
            }else if(res.data.code == -1){
              wx.navigateTo({
                url: '/pages/phoneLogin/signinShow/index'
              })
            }else if(res.data.code == 'A0230'){
              wx.clearStorageSync()
            } else {
                resolve(res.data);
                wx.showToast({
                  title: res.data.msg,  // 标题
                  icon: 'error',   // 图标类型,默认success
                  duration: 1500   // 提示窗停留时间,默认1500ms
                })
            }
          },
          error: function(e) {
            reject('网络出错');
          }
        })
      });
      return promise;
    }
     
     
    module.exports = {
      postRequest,
      getRequest,
    }
     
    api.js  //接口统一管理
     
    var config = require('./request.js')
     
    //get请求示例
    var loginCode = function(e){
      return config.getRequest("/login/code",e);
    }
     

    //post请求示例
    var loginLoginByCode = function(e){
      return config.postRequest("/login/loginCode",e);
    }
     
    //导出接口方法
    module.exports = {
      loginCode,
      loginLoginByCode,
    }
     
     
    //index.js文件引入(页面js)
     
    import http from "../../../utils/api";
     
    const parms = {
        name:'11',
     value:'22'
     }  
    http.loginCode (parms).then(res=>{
      //写自己的逻辑即可
    })
  • 相关阅读:
    Anaconda安装(python2和python3版本)
    windows系统同时安装python2和python3的详细步骤
    Java 重写和重载的区别
    Windows Internals 笔记——用内核对象进行线程同步
    公考之行测笔记3
    公考之行测笔记2
    公考之行测笔记
    Docker: 简要分析内核问题
    Docker: 仓库管理
    Docker: 认识与使用
  • 原文地址:https://www.cnblogs.com/wswm/p/15507122.html
Copyright © 2011-2022 走看看