微信小程序项目_秋泊优选52

48、支付代码优化(封装统一的请求头到request方法中)

如果发起request请求的路径带有 /my/ 自己带上header请求头
request\index.js

// 同时发送异步代码的次数
let ajaxTimes = 0;
export const request=(params)=>{
    
    
  // 判断url中是否带有/my/请求的是私有的路径带上header token
  let header={
    
    ...params.header};
  if(params.ur1.includes("/my/")){
    
    
    // 拼接header带上token
    header["Authorization"]=wx.getStorageSync("token");
  }

  ajaxTimes++;
  // 显示加载中效果
  wx.showLoading({
    
    
    title:"加载中zzz",
    mask: true
  });

  return new Promise((resolve, reject)=>{
    
    
    // 定义公共的url
    const baseUrl="https://api-hmugo-web.itheima.net/api/public/v1";
    wx.request({
    
    
      ...params,
      header:header,
      // url的拼接
      url:baseUrl+params.url,
      
      success:(result)=>{
    
    
        resolve(result.data.message);
      },
      fail:(err)=>{
    
    
        reject(err);
      },

      // 不管加载成功或者失败都执行
      complete:()=>{
    
    
        ajaxTimes--;
        if(ajaxTimes===0){
    
    
          // 关闭正在等待的图标
          wx.hideLoading();
        }
      }

    });
  })
}
// 以上是封装过的 发送请求方法

pages\pay\index.js 删除 header请求头参数
在这里插入图片描述
①加入购物车——>结算支付——>观察发送请求(token值的变化)
在这里插入图片描述
加入购物车——>结算支付——>观察发送请求——>
②如果不支付(支付失败)_私人路径——>重新跳转到首页(发请求需要权限认证)
没有发现:Authorization:token值
刚才的封装已经成功(后期在发送请求时 可以忽略请求头的权限验证了)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cpcpn/article/details/108664818