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


相关推荐

  • angular.Js_力量提供者

    angular.Js_力量提供者点击查看AngularJS系列目录转载请注明出处:http://www.cnblogs.com/leosx/每个Web应用程序都是有多个对象组合、协作来完成任务的。这些对象需要被实例化,并且连接在一

    2022年8月5日
  • jquery-uploadfile的使用「建议收藏」

    jquery-uploadfile的使用「建议收藏」jQueryFileUpload是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。官网链接:点击打开链接特点:拖放支持;上传进度条;图像预览;可定制和可扩展的;兼容任何服务器端应用平台(PHP,Python,RubyonRails,Java,Node.js,Goetc.)。使用方…

    2022年6月15日
  • NetScaler实现域名http到https的自动跳转

    NetScaler实现域名http到https的自动跳转很多场景下,有对外提供加密web站点(HTTPS)的需求,比如大部分在线交易/支付网站,SSL×××等都需要终端输入完整的URL如https://www.test.com才能打开页面。但大部分用户的使用习惯是只在浏览器地址栏输入域名,默认以http协议方式打开,但由于服务器端并不存在http://www.test.com,从而无法打开页面,影响用户体验。…

    2022年10月3日
  • 两人下象棋_双人五子棋同屏

    两人下象棋_双人五子棋同屏阅读本文前,请您先点击右上角的蓝色字体“优课屋”,再点击“关注”,这样您就可以继续订阅文章了!(国际象棋怎么玩)在我门的生活中,棋类游戏种类非常的多,其中我们最常玩的棋类游戏有中国象棋,中国跳棋,五子棋,围棋,军棋的。而最近这几年我们很多人都接触到了国际象棋这个游戏,国际象棋其实和中国象棋有很多相似的地方,很多玩家也都特别喜欢玩国际象棋这个游戏。我们现在可以非常方便的在我们身边的网络棋牌…

    2022年8月29日
  • matlab插值计算

    matlab插值计算0,说明关于插值,官网有个小总结,可以直接去参考(从1维到多维),下面是我举的例子。1,一维插值interp1(x,y,X1,method)x=linspace(0,10,11)y=sin(x)plot(x,y,’-ro’)插值方法有如下:method=‘nearest’,‘linear’,‘spline’,‘pchip’,‘cubic’比如使用三次条样插值spline,则x=linspace(0,10,11)y=sin(x)plot(x,y,’-ro’)x

    2022年6月4日
  • 最小生成树,克鲁斯卡尔算法入门。

    最小生成树,克鲁斯卡尔算法入门。

    2021年9月27日

发表回复

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

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