mpvue中,fly请求拦截[通俗易懂]

mpvue中,fly请求拦截[通俗易懂]mpvue中,fly请求拦截

大家好,又见面了,我是你们的朋友全栈君。

在小程序项目中,通常需要在请求header中带上token,以识别用户身份,每一个请求都去做判断处理十分的麻烦,因此想到了用flyio,fly和axios十分相似,但是axios并不能在小程序中使用,因此还是选择了fly。 fly里面的拦截机制还是很强大的,并且在错误返回信息做了优化处理,在fly拦截器中支持执行异步任务,就是说在请求数据的时候如果拦截到token不存在那么我们就可以在拦截器中重新获取token,再接着执行之前的请求。

const Fly = require(“flyio/dist/npm/wx”) const fly = new Fly Vue.prototype.$http = fly; fly.interceptors.request.use((request) => { //给所有请求添加自定义header if (api.Get(‘token’)) { request.timeout = 30000, request.headers = { “content-type”: “application/json”, “cld.stats.page_entry”: api.Get(‘scene’), “version”: store.state.version, “token”: api.Get(‘token’) } wx.showLoading({ title: “加载中”, mask: true, }); return request; } else { fly.lock();//锁住请求 return Public.Load().then(res => { request.timeout = 30000, request.headers = { “content-type”: “application/json”, “cld.stats.page_entry”: api.Get(‘scene’), “version”: store.state.version, “token”: api.Get(‘token’) } wx.showLoading({ title: “加载中”, mask: true, }); //等待token返回之后在解锁, fly.unlock(); return request;//继续之前的请求, }) } }) fly.interceptors.response.use( (response) => { wx.hideLoading(); return response }, (err) => { wx.hideLoading(); if (err.status == 0) { return “网络连接异常” } else if (err.status == 1) { return “网络连接超时” } else if (err.status == 401) { return “用户未登录” } else { if (err.response.data.message) { return err.response.data.message } else { return ‘请求数据失败,请稍后再试’ } }; // Do something with response error } )

转载于:https://juejin.im/post/5c886d85f265da2ddc3cb88b

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106936.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java实现仿QQ即时聊天[通俗易懂]

    java实现仿QQ即时聊天[通俗易懂]这是我的java大作业,这里就直接贴上我的实验报告了。1.1项目介绍这是一个模仿QQ的即时聊天软件,可以通过运行在本地的服务端,实现两个客服端之间的通信,即聊天。采用的是javafx架构作为GUI设计架构,个人认为优点是可以自己设计css,使界面达到美观的目的。本项目共有登录、注册、重置密码、主界面发消息、添加好友、好友列表项、查看聊天记录、删除聊天记录、未读消息提醒、好友主页、我的主页等模块…

  • jQuery鼠标悬停3d菜单展开动画

    效果体验:http://hovertree.com/texiao/jquery/93/竖直的主菜单贴着页面左侧,当光标移入菜单项时,以3D动画的方式弹出对应的二级菜单。采用jQuery和CSS3实现。

    2021年12月28日
  • 激活码2089(已测有效)

    激活码2089(已测有效),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 浅谈CMS垃圾收集器与G1收集器

    浅谈CMS垃圾收集器与G1收集器1、CMS收集器  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下:1)初始标记2)并发标记3)重新标记4)并发清除  初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到的对象,熟读很快,并发标记阶段就是进行GC Roots Tracing,而重新标…

  • 浙江小学python教材_PPT、H5、Python、大数据……浙江中小学新教材9月投用![通俗易懂]

    浙江小学python教材_PPT、H5、Python、大数据……浙江中小学新教材9月投用![通俗易懂]今年9月的新学期,浙江三到九年级信息技术课将替换新教材。消息一出,引起浙江学生家长的关注。其中最大的变化是,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材规划五六年级开始接触。浙江省教研室相关工作人员表示,目前根据现行的高中教材,对小学、初中的老教材进行了修订,新教材将于今年9月投入使用,最新的线上教师培训也刚刚结束。在最…

  • biting的意思_什么是bit

    biting的意思_什么是bitCM3的存储器系统支持所谓的“位带”(bit-band)操作。通过它,实现了对单一比特的原子操作。位带操作仅适用于一些特殊的存储器区域中。 位带区与位带别名区的膨胀关系图      在位带区中,每个比特都映射到别名地址区的一个字——这是个只有LSB才有效的字。 支持位带操作的两个内存区的范围是:0x200

    2022年10月13日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号