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.url.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值
刚才的封装已经成功(后期在发送请求时 可以忽略请求头的权限验证了)