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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机无法识别ANSI编码文件里的中文导致乱码「建议收藏」

    计算机无法识别ANSI编码文件里的中文导致乱码「建议收藏」问题现象最近远程协助一个用户的电脑(TeamView竟然连接不上,只好用QQ远程啦),原来ANSI编码的ini文件里的中文是正常的;用着用着,某一天就乱码了,无法识别ANSI编码文件里的中文。创建ANSI编码的ini配置文件,输入中文后保存会提示“…该文件有Unicode格式的字符,当文件保存为ANSI编码的文本时,该字符将丢失…”的问题。原因Unicode和ANSI是两种不同的字符编…

    2025年12月4日
    3
  • GB2312汉字拼音对照表[通俗易懂]

    GB2312汉字拼音对照表[通俗易懂]  GB2312汉字拼音对照表(6727字)来源:http://zh.transwiki.org/wiki/index.php/GB2312%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%AF%B9%E7%85%A7%E8%A1%A8啊 a阿 a e埃 ai挨 ai哎 ai唉 ai哀 ai皑 ai癌 ai蔼 ai矮 ai艾 ai yi碍 ai爱

    2022年6月21日
    23
  • java事务的使用_Java跨库事务

    java事务的使用_Java跨库事务什么是事务?事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransaction语句(或函数调用)来界定。事务由事务开始(begintransacti…

    2022年10月10日
    3
  • MySQL游标_oracle游标超限

    MySQL游标_oracle游标超限1.简单介绍从MySQL5开始添加了对游标(cursor)的支持,使用游标可以很方便的在查询出来的结果集上获取第一行、最后一行、上一行或下一行等一系列的操作。游标是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。MySQL游标只能用于存储过程和函数中。2….

    2025年7月31日
    2
  • matlab中importdata函数导入数据 到工作空间[通俗易懂]

    用load函数导入mat文件大家都会。但是今天我拿到一个数据,文件后缀名居然是‘.data’。该怎么读呢?我只好用matlab界面Workspace区域的“importdata”按钮手工导入该文件。恩,还好,居然成功了。顺便提一下,这个“importdata”按钮功能很强大,连excel文件都能导入。但是如果在脚本里如何导入这种非mat文件呢?这时候就轮到“import

    2022年4月17日
    223
  • intellij idea激活成功教程版安装步骤_IntelliJ IDEA激活成功教程版

    intellij idea激活成功教程版安装步骤_IntelliJ IDEA激活成功教程版参考文章:1、里面有idea2018网盘下载地址idea2018激活成功教程版下载解压完:2、详细安装图解:IntelliJIDEA下载安装(含注册码)傻瓜式安装即可哈哈,安装完run配置一路点击next,这里配置的功能,以后也可以修改,所以不用担心。…

    2022年10月9日
    2

发表回复

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

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