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

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

前言:

请求拦截器可以在我们需要传递请求头的时候使用,例如:token

也会在当token发生变化的时候给予响应,所以我们做好对应的判断即可

1.首先在根目录创建common文件夹,

在里面创建request.js文件并加入以下代码:

export default {
  config: {
  //baseURL这里可以放自己的接口域名
    baseURL: "",
    getToken() {
    //获取token
      let token = uni.getStorageSync("userInfo").token;
      if (!token) {
        return uni.reLaunch({ url: "/pages/login/login" });
      }
      return token;
    },
    //获取userid
    getUser() {
      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);
      });

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

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

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

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

相关文章
|
12天前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
36 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
13天前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
34 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
13天前
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
|
15天前
|
小程序 安全
Fiddler抓取小程序后端请求导入AppScan扫描快捷方法
【8月更文挑战第26天】这是一种利用 Fiddler 捕获小程序后端请求并导入 AppScan 进行安全扫描的方法。首先安装配置 Fiddler 并设置手机代理,通过 Fiddler 捕获请求;接着导出这些请求为 .saz 文件,并在 AppScan 中导入此文件,配置扫描参数后启动扫描以检测安全漏洞。操作时需确保有合法授权并遵循相关法规。尽管不同版本软件操作细节可能有所不同,但整体流程类似。
|
16天前
|
移动开发 小程序 前端开发
|
22天前
|
小程序 前端开发
|
24天前
|
小程序 JavaScript Java
微信小程序+SpringBoot接入后台服务,接口数据来自后端
这篇文章介绍了如何将微信小程序与SpringBoot后端服务进行数据交互,包括后端接口的编写、小程序获取接口数据的方法,以及数据在小程序中的展示。同时,还涉及到了使用Vue搭建后台管理系统,方便数据的查看和管理。
微信小程序+SpringBoot接入后台服务,接口数据来自后端
|
29天前
|
存储 小程序 JavaScript
|
29天前
|
存储 小程序 JavaScript
|
29天前
|
小程序 前端开发 安全