uniapp 微信小程序请求拦截器 接口封装

前言:
请求拦截器可以在我们需要传递请求头的时候使用,例如:token
也会在当token发生变化的时候给予响应,所以我们做好对应的判断即可

话不多说,直接进入正题:
1.首先在根目录创建common文件夹,
在里面创建request.js文件并加入以下代码:

export default {config: {//baseURL这里可以放自己的接口域名baseURL: "",getToken() {//获取tokenlet token = uni.getStorageSync("userInfo").token;if (!token) {return uni.reLaunch({ url: "/pages/login/login" });}return token;},//获取useridgetUser() {let id = uni.getStorageSync("userInfo").id;if (!id) {return uni.reLaunch({ url: "/pages/login/login" });}return id;},// 响应拦截器beforeRequest(options = {}) {return new Promise((resolve, reject) => {//请求的地址 = 上面设置的域名加上接口封装的地址options.url = this.baseURL + options.url;options.method = options.method || "POST";//添加请求头options.header = {token: this.getToken(),id: this.getUser(),};resolve(options);});},// 请求拦截器handleResponse(data) {//自行打印data根据data里的数据进行判断token过期等等if (data.data.code == 0 && data.data.msg == "权限错误"){uni.showModal({title: '提示',content: '已掉线,是否重新登录',showCancel: true,success: ({ confirm, cancel }) => {if(confirm){uni.redirectTo({ url: '/pages/login/login' })}else{}}})}return data;},},// request 请求request(options = {}) {return this.config.beforeRequest(options).then((opt) => {return uni.request(opt);}).then((res) => this.config.handleResponse(res));},
};

2,在common文件夹下接着新建一个example.js文件来当作接口封装的文件

// api/example.js
import api from "@/common/request.js";
//把我们刚才写的request.js文件引入过来
export function pubdemo(data) {console.log(data, "传递的参数");//使用引入的request发送请求return api.request({//request.js文件里面已经有前缀了所以这里直接写后面的路径即可url: "/api/web/Notice/reminder",method: "post",data: data,});
}

3,页面内使用

      import { pubdemo } from "@/common/example.js";pubdemo({//这里是要传递的参数,前面参数名后面参数值id: 12,}).then((res) => {console.log(res.data,res.data);});

对于一些不用传递参数的接口直接把变量名里面的对象删除即可

	  pubdemo().then((res) => {console.log(res.data,res.data);});
微信小程序

微信小程序跟uniapp同理,只需要把某些东西改一下即可

创作不易,留下免费的双击关注再走吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium 中并行测试的重要性!

随着技术的进步,测试解决方案变得更具可扩展性,加速了团队从手动测试到Selenium测试自动化的转型。但是成年人的世界,没有什么是容易的。对于许多团队来说,并行运行多个测试仍然是不可扩展的。他们倾向于遵循传统的顺序执行测试方…

MIT6.5840-2023-Lab2A: Raft-leader election

前置知识 什么是一致性算法? 安全性保证,绝对不会返回一个错误的结果;可用性,容忍集群部分节点失败;不依赖时序来保证一致性;一条指令可以尽可能快的在集群中大多数节点响应一轮远程过程调用时完成。小部分…

uniapp实战 —— 可滚动区域 scroll-view (自适配高度,下拉刷新)

自适配高度 自定义的顶部导航栏,可参考博文 https://blog.csdn.net/weixin_41192489/article/details/134852124 如图可见,在页面滚动过程中,顶部导航栏和底栏未动,仅中间的内容区域可滚动。 整个页面的高度设置为 100%&#xf…

鸿蒙开发—学习声明式UI

基本UI描述 ArkTS通过装饰器Component和Entry装饰struct关键字声明的数据结构,构成一个自定义组件。自定义组件中提供了一个build函数,开发者需在该函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述规范。 基本概念 stru…

GZ029 智能电子产品设计与开发赛题第4套

2023年全国职业院校技能大赛高职组 “GZ029智能电子产品设计与开发”赛项赛卷四 题目:模拟工业传送带物品检测系统的设计与开发 1 竞赛任务 在智能电视机上播放工业传送带传输物品视频,模拟工业传送带物品检测系统(以下简称物品检测系统&…

DALI1.0学习——BIT解码

最近在学习DALI调光相关知识并下载了Microchip提供的基于ATMega88PA的软件工程及硬件设计参考方案。写这些文章的目的就是把自己对知识的理解作一些梳理。 芯片厂果然专业,考虑得相当周到,为了芯片销量连软件和硬件方案全都提供了。芯片厂关于DALI1.0实…

【unity小技巧】实现枪武器随镜头手臂摇摆效果

文章目录 前言方法一、改变武器位置方法二、改变武器旋转结语完结 前言 如果我们视角移动转向,武器如果不跟着进行摇摆,会感觉我们的动作很生硬,特别是射击类游戏,如下 实现武器摇摆这里主要分享两种实现方法,一种是…

xtu oj 1271 color

题目描述 Alice在玩一个游戏,她在一个mn的格子里,随机涂黑k个格子。然后她每次可以把一行或者一列的格子染成红色,但是这一行中不能有黑色的格子。 请问她最多能把多少个格子涂成红色? 输入 第一行是一个整数T(T≤100)&#xf…

华为OD机试 - 数的分解(Java JS Python C)

题目描述 给定一个正整数 n,如果能够分解为 m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述 输入数据为一整数,范围为 (1, 2^30] 输出描述 比如输入为: 21 输出: 21=10+11 …

SSD数据在写入NAND之前为何要随机化?-Part1

SSD的存储介质是什么,它就是NAND闪存。那你知道NAND闪存是怎么工作的吗?其实,它就是由很多个晶体管组成的。这些晶体管里面存储着电荷,代表着我们的二进制数据,要么是“0”,要么是“1”。NAND闪存原理上是一…

唯创知音WT588F02B语音芯片在电子针疗仪中的声音播放提示应用

在医疗技术领域,电子针疗仪作为一种非侵入性的治疗设备,被广泛应用于各种疼痛管理和康复治疗。然而,操作电子针疗仪需要一定的专业知识和经验,以确保安全有效的治疗。为了解决这一难题,唯创知音WT588F02B语音芯片被应用…

0基础学java-day14-(集合)

一、集合 前面我们保存多个数据使用的是数组,那么数组有不足的地方,我们分析一下 1.数组 2 集合 数据类型也可以不一样 3.集合的框架体系 Java 的集合类很多,主要分为两大类,如图 :[背下来] package com.hspedu.c…

设计模式之GoF23介绍

深入探讨设计模式:构建可维护、可扩展的软件架构 一、设计模式的背景1.1 什么是设计模式1.2 设计模式的历史 二、设计模式的分类2.1 创建型模式2.2 结构型模式2.3 行为型模式 三、七大设计原则四、设计模式关系结论 :rocket: :rocket: :rocket: 在软件开发领域&…

算法:爬楼梯(迭代和动态规划)

迭代 时间复杂度 O(n) 空间复杂度 O(1) /*** param {number} n* return {number}*/ var climbStairs function(n) {let l 0, r 0 , sum 1for(let i1; i<n; i){l rr sumsum l r}return sum }; 动态规划 时间复杂度 O(n) 空间复杂度 O(n) /*** param {number} n* r…

Memcached学习

一、概念 Memcached是一个开源的&#xff0c;高性能的内存缓存软件&#xff0c;从名称上看Mem就是内存&#xff0c;二cache是缓存。作用通过在事先规划好的内存空间中临时缓存数据库中的各类数据&#xff0c;以达到减少业务对数据库的直接高并发访问&#xff0c;从而达到提升数…

【密码学基础】Diffie-Hellman密钥交换协议

DH介绍 Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥&#xff0c;然后可以用这个密钥进行加密和解密。 但是注意&#xff0c;这个密钥交换协议 只能用于密钥的交换&#xff0c;而…

Java面试题(每天10题)-------连载(45)

Dubbo篇 1、Dubbo的服务调用流程 2、Dubbo支持那种协议&#xff0c;每种协议的应用场景&#xff0c;优缺点&#xff1f; dubbo&#xff1a; 单一长连接和 NIO 异步通讯&#xff0c;适合大并发小数据量的服务调用&#xff0c;以及消费者远大于提供者。传输协议 TCP&#xff0c;…

Proteus仿真--射击小游戏仿真设计

本文介绍基于proteus射击小游戏仿真设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 K1-K4为4个按键&#xff0c;用于上移、下移、确认等&#xff0c;模拟单机游戏 仿真运行视频 Proteus仿真--射击小游戏仿真设计 附完整Proteus仿真资料代码资料 …

ArcGIS界面显示分辨率调整

因为电脑显示分辨率的问题呢&#xff0c;ArcGIS的界面显示会字体显示不合适&#xff0c;出现模糊情况&#xff0c;这时候只需要做个简单的操作设置一下便可以解决&#xff01; 1、右键ArcMap的快捷启动方式。 2、对应选择兼容性——>更高DPI设置——>勾选替代DPI缩放行为…

自然场景图像中的文本检测综述

摘 要 本文对自然场景文本检测问题及其方法的研究进展进行了综述. 首先, 论述了自然场景文本的特点、自然场景文本检测技术的研究背景、现状以及主要技术路线. 其次, 从传统文本检测以及深度学习文本检测的视角出发, 梳理、分析并比较了各类自然场景文本检测方法的优缺点, 并介…