小程序二次封装wx.request

const baseURL = "地址";
const request = ({url="",method="GET",data={},header={}})=>{
  if(typeof(url) !== "string"){
    throw new Error("Request传递的url不是string类型!")
  }
  // 没有//    做//拼接
  if(!url.includes("://")){
    url = baseURL + url;
  }
  // 获取token
  let token = wx.getStorageSync('token');
  if(token){
    // 如果有token就请求头默认带上
    header.token = token;
  }
  return new Promise((resolve,reject)=>{
    wx.request({
      url,
      method,
      data,
      header,
      success:(res)=>{
        // 响应拦截器 
        // 处理token失效
        if(res.statusCode == 401){ 
          wx.removeStorageSync('token');
          // wx.navigateTo 。redirectTo 不能跳转到tabbar页面
          // reLaunch删除其他页面,清空记录然后跳转
          wx.reLaunch({
            url: '/subpkg/login/login',
          })
        }
        console.log(res);
        resolve(res.data);
        reject(res.data.message)
      },
      fail:(err)=>{reject(err)}
    })
  })
}
request.get = (url,data,header)=>{
  return request({url,method:"GET",data,header})
}
request.post = (url,data,header)=>{
  return request({url,method:"POST",data,header})
}
export default request;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容