首页 > 编程语言 >微信小程序--3.request.ts文件封装

微信小程序--3.request.ts文件封装

时间:2023-10-25 09:55:35浏览次数:37  
标签:-- 微信 request ts url res data wx

3.request.ts文件封装

api.ts

import request from './request'

//获取token
export function init(data: object){
  return request({
      url:'/api/wechat_mini/auth/wx_init',
      data
  })
}

request.ts

const app = getApp();
//提示语方法
function Toast(
  title: string | WechatMiniprogram.IAnyObject | ArrayBuffer,
  icon = "none"
) {
  wx.showToast({
    title,
    icon,
    duration: 2000,
  });
}//这里ts校验还有一些问题,后续改正
//封装request请求
const request = (params: any) => {
  const {
    url,
    method = "POST",
    data = {},
    contentType = "application/json",
  } = params;
  console.log('url:',url)
  console.log('method:',method)
  console.log('data:',data)
  console.log('contentType:',contentType)
  const token = wx.getStorageSync("token") || "";
  return new Promise(function (resolve, reject) {
    wx.request({
      url: `${app.globalData.baseUrl}/home/${url}`,
      data: data,
      method: method,
      header: {
        "Content-Type": contentType,
        Authorization: token,
      },
      success: function (res) {
        if (res.header.Authorization || res.header.authorization) {
          wx.setStorageSync(
            "token",
            res.header.Authorization || res.header.authorization
          );
        }
        var code = res.statusCode;
        switch (code) {
          case 401:
            wx.showModal({
              title: "登录提示",
              content: "身份已过期,请重新登录后再来操作!",
              success(res) {
                if (res.confirm) {
                  wx.navigateTo({
                    url: "../accredit/accredit",
                  });
                }
              },
            });
            break;
          case 402:
            Toast("该用户账号被冻结");
            break;
          case 403:
            wx.showModal({
              title: "温馨提示",
              content: "请认证后再来操作!",
              success(res) {
                if (res.confirm) {
                  wx.navigateTo({
                    url: "../register/register",
                  });
                }
              },
            });
            break;
          case 422:
            Toast(res.data);
            resolve(res);
            break;
          default:
            resolve(res);
            break;
        }
      },
      fail: function (err: any) {
        Toast("网络错误");
        reject(err);
      },
    });
  });
};

export default request;

 

 

标签:--,微信,request,ts,url,res,data,wx
From: https://www.cnblogs.com/meiyanstar/p/17786421.html

相关文章

  • ruby实战手册(20)
    目录yieldyieldirb(main):001:1*defhello_worldirb(main):002:1*puts"hello"irb(main):003:1*yieldirb(main):004:1*yieldirb(main):005:1*puts"world!"irb(main):006:0>end=>:hello_worldirb(main):007:0>hello_worl......
  • 微信小程序--5. 如下图将顶部导航栏的地方改成自定义样式
    5.如下图将顶部导航栏的地方改成自定义样式1)配置app.json{"window":{"navigationStyle":"custom"//增加这行}} 2)、封装顶部导航栏的样式创建组件文件夹及文件miniprogram\components\navigation-bar\index//components/navigation-bar/index.wxml<!......
  • 用python计算圆周率PI
    fromrandomimportrandomfrommathimportsqrtimporttimeDARTS=10**7hits=0.0a=1start=time.perf_counter()foriinrange(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1ifi==DARTS*......
  • goland
    goland要是有个社区版就好了-javaagent:/Users/xxx/bin/ja-netfilter.jar=jetbrains https://www.cnblogs.com/zgcblog/p/17269749.htmlMXMQUYT815-eyJsaWNlbnNlSWQiOiJNWE1RVVlUODE1IiwibGljZW5zZWVOYW1lIjoiSHVuYW4gSW5zdGl0dXRlIG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kiLCJ......
  • NOIP冲刺之超市T2计划
    超市T2计划总结目录超市T2计划总结声明:刷题:三国游戏:T1尼克的任务:T2卖萝卜:T1剔除多余括号:T2引水入城:T3MediumDesign:T3总结:声明:本贴用于总结对于csps-noipT2左右难度的题目。会选择一些NOIP的题目,或者是codeforces过的人数在1500~3000的题目。然后分为了T1-T66个级别也......
  • 属性很多时如何很清晰的通过充血模型创建数据合法的对象
    原因:在构建充血模型时,为构建合法的对象,对象赋值都在私有的。属性少的时候可以直接写构造函数,属性多时就不太合适了。如何解决这个问题呢?直接上代码Book类:1publicclassBook2{3publiclongId{get;privateset;}4publiclongAuthorId{g......
  • 对整数逆序两次,判断是否与原来的值相等
    调用函数的代码:boolisSameAfterReversals(intnum){  intnewans=0,newans2=0,i=num;  if(i<10){    returntrue;  }  while(i>0){      newans=newans*10+i%10;      i/=10;      ......
  • MySQL的磁盘利用率的几个因素决定
    数据大小:MySQL存储的数据量是磁盘利用率的一个重要因素。随着数据量的增加,磁盘空间将被更频繁地使用。索引大小:索引是MySQL中用于快速检索数据的数据结构。索引的大小也会影响磁盘利用率。在具有大量索引的数据库中,索引的大小可能会占用相当大的磁盘空间。存储引擎:MySQL支持多......
  • 史上最全vscode配置使用教程
    欲善其事,必先利其器。想要优雅且高效的编写代码,必须熟练使用一款前端开发工具。但前端开发工具数不胜数,像HBuilder、SublimeText、WebStorm、VisualStudioCode......等等,其中VSCode以其轻量且强大的代码编辑功能和丰富的插件生态系统,独受前端工师的青睐。网上有很多vscode的配......
  • PAT_A1101 Quick Sort
    Thereisaclassicalprocessnamed partition inthefamousquicksortalgorithm.Inthisprocesswetypicallychooseoneelementasthepivot.Thentheelementslessthanthepivotaremovedtoitsleftandthoselargerthanthepivottoitsright.Given ......