微信小程序封装ajax - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

微信小程序封装ajax

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:43

封装ajax

  • 前言
  • 代码

前言

使用小程序的 API wx.request 调用接口时,总是没有 Promise 用得顺手,何不将 wx.request 封装成返回一个 Promise 的函数,说干就干。

代码

  • 保存登录接口返回的 cookie
wx.setStorageSync("sessionid", res.header["Set-Cookie"])
  • 封装ajax的代码
// ajax.js
const DEFAULT_HEADER = {
  'content-type': 'application/json',
}
// 接口所在域名
const BASE_URL = 'http://localhost:3000'
// wx.getStorageSync("sessionid") 登录成功后服务器返回cookie,
// 保存在本地缓存中,若不需要就去除。

export const ajax = (api, params = {}, method = 'POST', header = {}) => {
  return new Promise((resolve, reject) => {
    wx.request({
      url: `${BASE_URL}${api}`,
      method: method,
      data: params,
      header: Object.assign(header, DEFAULT_HEADER, {'cookie': wx.getStorageSync("sessionid")}),
      success (res) {
        const data = res.data
        if (data) {
          if (data.code == 0) {
            resolve(data)
          } else if(data.code == 250){
            // 未登录
            wx.reLaunch({url: '/pages/login/login'})
            resolve(data);
          } else {
            resolve(data)
          }
        }
        resolve(res)
      },
      fail (res) {
        reject(res)
      }
    })
  })
}

相关案例查看更多