为fetch添加拦截器功能
fetch 添加拦截器拦截器
使用过axios的便会知道axios 有axios.interceptors.request.use请求拦截器与service.interceptors.response.use响应拦截器,可以请求前和,then,catch前统一处理响应信息或者response
expand_fetch.jsconst req_interceptors = [] //请求拦截方法存放
const res_interceptors = [] //响应拦截方法存放function expand_fetch( url, option = { } ){ if( !option.method ){option.method = 'GET' }//多个请求拦截器依次更改option req_interceptors.forEach( fn => option = fn(option) )return new Promise((resolve,reject)=>{//使用原生fetchfetch(url,option).then(( res )=>{‘//多个响应拦截器依次更改res res_interceptors.forEach( fn => res = fn(res) )resolve(res)}).catch((error)=>{reject(error)})})
}//挂载添加和删除拦截器的方法
expand_fetch.interceptors = {request:{ use : (fn)=>{req_interceptors.push(fn)return fn},eject:(data)=>{if(req_interceptors.indexOf(data) !== -1){req_interceptors.splice(req_interceptors.indexOf(data),1)}}},response:{ use : (fn)=>{res_interceptors.push(fn)return fn}},eject:(data)=>{if(res_interceptors.indexOf(data) !== -1){res_interceptors.splice(res_interceptors.indexOf(data),1)}}
}export default expand_fetch
使用
import Fetch from './expand_fetch.js'//为post数据转为 json 发送
const c_req = Fetch.interceptors.request.use((option)=>{if(option.method === "POST"){option.body = JSON.stringify(option.body)}return option
})//直接获取到返回内容的数据
const c_res = Fetch.interceptors.response.use((res)=>{if(res.code === 200 && res.data ){return res.data}return res
})//清除拦截器
Fetch.interceptors.request.eject(c_req)
Fetch.interceptors.response.eject(c_res)
为fetch添加拦截器功能相关推荐
- javaweb添加拦截器
js请求后台代码添加拦截器: package com.ctzj.biz.isale.deploy.controller; import java.io.IOException; import java ...
- 拦截器 java_在Java后端如何添加拦截器
(1)InterceptorConfig.java文件内容如下: import org.springframework.web.servlet.config.annotation.WebMvcConf ...
- cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
cxf添加拦截器 如今,由于我们在响应中发送大量数据,因此必须对API响应执行Gziping. 它节省了网络带宽和交付时间,当然还节省了Internet上的空间. CXF提供了以多种方式使用Gzip压 ...
- springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
背景: 今天有一个需求需要拦截除登录相关请求以外的所有请求,并查看request 中是否包含指定的信息,而自然就想到了使用拦截器就可以轻松实现 编写拦截器,获取请求头信息中的test,并打印出来 @C ...
- token拦截器android_vue.js添加拦截器,实现token认证(使用axios)
什么是token? token是一个用户自定义的任意字符串,目前开发中,token都是在服务端生成并且token的值会保存到服务器后台.只有服务器和客户端知道这个字符串,于是,这个token就成了两者 ...
- springboot添加拦截器 监听等设置
1.添加拦截器 package com.jy.config;import org.springframework.context.annotation.Configuration; import or ...
- 修正Strut2 自带上传拦截器功能
Struts2字典的FileUploadInterceptor 拦截器 主要帮助获取上传文件的ContentType.fileName.文件对象.如果开发人员在开发过程中使用.则需要设置set/get ...
- 添加拦截器解析用户信息
已登录购物车 接下来,我们完成已登录购物车. 在刚才的未登录购物车编写时,我们已经预留好了编写代码的位置,逻辑也基本一致. 添加登录校验 购物车系统只负责登录状态的购物车处理,因此需要添加登录校验,我 ...
- WebService学习总结十 使用Spring发布WebService并添加拦截器
首先使用Spring方式发布成功WebService,再在客户端和服务器端引入出拦截器和入拦截器,引入的方式是写在配置文件中的. 客户端: 自定义的拦截器 package ws.client.inte ...
最新文章
- WPF资源的基本概念
- wxPython多线程界面卡死或在不同平台崩溃问题
- 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
- 关于chm文件打不开的解决方案
- 算法导论笔记:06堆排序
- 聊聊编程那些破事-0.Prehistory
- 使用scrapy-redis构建简单的分布式爬虫
- 手机论文查重软件哪个好?
- 复旦大学电子信息专业考研上岸经验分享
- php 悬浮按钮,Android_Android利用悬浮按钮实现翻页效果,今天给大家分享下自己用悬浮 - phpStudy...
- JAVA:实现LongestPalindromicSubsequence最长回文子序列算法(附完整源码)
- 阿里正式开源通用算法平台Alink,“双11”将天猫推荐点击率提升4%
- 申请专利的那些事——如何用电子客户端自己申请发明专利
- EasyExcel使用
- 张驰课堂:六西格玛培训工具——箱线图
- ubuntu18.04 安装新版本的clang-format 9
- 百度地图POI的边界GEOJSON数据采集
- 「重磅开篇」形成完善的多线程世界观
- 飞飞小说源码php,飞飞小说Ver1.11
- Vmware中安装KVM必要条件