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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 读写分离 事务_mysql 读写分离(基础篇)

    mysql 读写分离 事务_mysql 读写分离(基础篇)基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。JanKneschke在《MySQLProxylearnsR/WSplitting》中详细的介绍了这种技巧以及连接池问题:为了实现读写分离我们需要连接池。我们仅在已打开了到一个后端的一条经过认证的连接的情况下,才切换到该后端。MySQL协议首先进行握手。当…

    2022年6月6日
    42
  • jni断点调试「建议收藏」

    jni断点调试「建议收藏」jni断点调试

    2022年5月16日
    45
  • uint32-t_c语言uint32_t类型

    uint32-t_c语言uint32_t类型uint32_tu:代表unsigned即无符号,即定义的变量不能为负数;int:代表类型为int整形;32:代表四个字节,即为int类型;_t:代表用typedef定义的;整体代表:用typedef定义的无符号int型宏定义;uint8_t:u:代表unsigned即无符号,即定义的变量不能为负数;int:代表类型为int整形;8:代表一个字节…

    2025年9月29日
    5
  • 蓝桥杯集锦05(python3)

    蓝桥杯集锦05(python3)

    2021年4月18日
    186
  • opencv的imshow函数_opencv函数手册

    opencv的imshow函数_opencv函数手册还是老习惯,分三步走。第一步,功能说明。第二步,结果图显示,第三步,API详解。第四步,代码展示(注释很详细,保证所有有C++基础的人都可以看懂。)第一步,功能说明:imread()功能就是载入一张图片。该函数经常配合imshow()函数一起使用,imshow()函数功能就是把你刚才载入的图片显示出来。第二步,结果图显示:如果你已经配置好环境那就来上手来试验一下吧。先显示两张图片,分别…

    2022年10月9日
    4
  • 随机数:真随机数和伪随机数一样吗_rdrand真随机数

    随机数:真随机数和伪随机数一样吗_rdrand真随机数说到随机这个词,相信各位肯定都深有体会了。生活中有太多的不确定因素从各方各面影响着我们,但也正是因为这样我们的人生更加多彩,具有了更多的可能性。可以说,随机是个非常有魅力的东西。而游戏开发者通常也会利用随机让游戏更加的吸引人。例如你正在玩的手机游戏里面的抽卡系统就是很好的例子。笔者曾经在阴阳师的抽符大坑中痛苦不堪。什么,你只玩王者荣耀?那里面的抽英雄抽符文,我想你应该也经历过绝望吧。

    2025年8月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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