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同理,只需要把某些东西改一下即可

创作不易,留下免费的双击关注再走吧~文章来源地址https://www.toymoban.com/news/detail-818956.html

到了这里,关于uniapp 微信小程序请求拦截器 接口封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot 日志记录接口的请求参数和响应结果的两种方式-拦截器和切面(具体代码)

    springboot 日志记录接口的请求参数和响应结果的两种方式-拦截器和切面(具体代码) 前言:在生产中如果出现问题,我们想要查看日志,某个时间段用户调用接口的请求参数和响应的返回结果,通过日志来推测下用户当时做了什么操作。日志记录接口的请求参数和响应结果有利

    2024年02月02日
    浏览(63)
  • VUE3 请求拦截器 响应拦截器

    1,导入axios  (使用axios进行接口的请求,页面发送http请求,很多情况我们要对请求和其响应进行特定的处理,如:判断token,设置请求头。如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦,程序的优雅性也会大打折扣。所以axios为开发者提供了这样一个API:拦

    2024年02月16日
    浏览(48)
  • axios 请求和响应拦截器

    1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们,拦截分为请求拦截和响应拦截。 2.1 request 拦截器,全局添加市场信息 removeMarketCode 是否移除市场信息,默认不移除; 根据上述代码可以看到,市场信

    2024年02月09日
    浏览(40)
  • Feign请求及响应拦截器

    feign请求拦截,处理head、param、body参数,附加解密定制化处理,也可以使用原生解码器; feign响应拦截,处理head、param、body参数,附加解密定制化处理,也可以使用原生解码器; 附件加解密工具(支持格式化rn、rt)等格式化代码加解密,五年验证品质保证

    2024年02月11日
    浏览(46)
  • axios 中使用请求响应拦截器

    axios 简介: Axios 是一个 基于 promise 网络请求库 ,作用于 node.js 和浏览器 中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在 服务端它使用原生 node.js http 模块 , 而在 客户端 (浏览端) 则使用 XMLHttpRequests 。 axios的特性: 从浏览器创建 XMLHttpRequests 从 node.js 创

    2024年02月16日
    浏览(50)
  • 【前端知识】Axios——请求拦截器模板

    Axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。它可以在浏览器和Node.js环境中使用,并且提供了许多强大的功能,例如拦截请求和响应、转换请求和响应数据、取消请求等。 Axios具有简单易用的API,可以轻松地发送GET、POST、PUT、DELETE等各种类型的请求。它还支持异步操

    2024年02月09日
    浏览(47)
  • axios拦截器,如何批量处理请求响应

    从浏览器创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 取消请求 自动转换JSON数据 客户端支持防御XSRF 在请求或响应被 then 或 catch 处理前拦截它们。 新建request.js,写入以下内容: 在需要使用的页面进行调用 上一步咱们将axios拦

    2024年02月13日
    浏览(41)
  • 登录用户信息获取 网关+拦截器+feign请求添加请求头

    给所有请求添加用户身份 网关已经给所有请求添加了用户身份,也就是authorization头信息。   创建ThreadLocal工具类 : 创建拦截器:  将拦截器注册到SpringMvc,让它生效:  将以上代码(拦截器,config,utils) 放到哪个微服务中,哪个微服务/**路径就会有拦截功能 没有用户信息的请求将会

    2024年02月09日
    浏览(44)
  • Vue3---请求拦截器携带token

    为什么要在请求拦截器携带Token? Token作为用户标识,在很多个接口中都需要携带Token才可以正确获取数据,所以需要在接口调用时携带Token。另外,为了统一控制采取请求拦截器携带的方案 如何配置? Axios请求 拦截器 可以在接口正式发起之前对请求参数做一些事情,通常Toke

    2024年02月15日
    浏览(45)
  • axios拦截器:每次请求自动带上 token

    Step 1:创建Axios实例并添加拦截器 在你的Vue项目中,一般我们会先导入axios,然后创建一个axios实例。这样做是为了方便统一管理和配置。 上面的代码做了什么呢? 1. 我们创建了一个axios实例service,相当于有了一个专属邮差。 2. 给这个邮差设置了规则:每次出门送信前,先检

    2024年04月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包