小程序封装 接口请求方式

直接粘贴复制即可使用

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=>{
  //写自己的逻辑即可
})
原文地址:https://www.cnblogs.com/wswm/p/15507122.html