自己有封装过ajax或者axios吗
在项目开发的时候大多会使用fetch或者借助第三方axios工具来进行数据请求,已经很少去自主封装ajax了,因为目前主流的数据交互方案都是依靠promise来解决,而fetch和axios都是基于Promise来实现的,所以我在做项目的时候都是直接用fetch或者axios,如果只是简单尝试一个效果的话就直接用fetch,在正式的项目中还是会采用axios,因为axios可以做出一些整体性的配置及拦截器,实现更丰富的能力。
我在项目中会这样去封装axios请求工具:
1、通过axios.create(config)来创建一个request实例,在其中可以根据环境变量配置基础路径、超时时间等。
2、配置请求拦截器和响应拦截器
1、请求拦截器
- 从store中取出token,绑定在请求头上
- 全局loading设置为true (事件总线)
2、响应拦截器
- 配置了请求成功及失败的类型(根据标识性状态码区分)
- 接收请求时携带的参数等等特殊处理
+ silent 默认post请求会做出成功和失败提示,silent为true则不提示
+ loud 默认get请求不会做出提示,loud为true则做出提示
+ more 默认返回全局的数据
- 根据成功及失败的结果,做出全局提示
- 成功的时候返回res.data.data, 如果more为true,就返回res.data
- 如果请求成功了,但是接口返回的数据是是失败的数据(响应的code不为200)throw 抛出一个错误,方便在逻辑中利用try catch进行成功和失败的分流。
相关推荐HOT
更多>>xml解析器
SAX解析器:基于事件驱动的解析器,逐行读取XML文件并触发相应的事件,适用于处理大型XML文件,但需要手动编写事件处理器来处理XML文件中的数据...详情>>
2023-03-21 16:03:51java全局变量
如果全局变量是一个对象,则可以更改该对象的状态,即使变量本身是final类型。当一个方法被调用时,会为该方法在栈上分配一块内存空间,用于存...详情>>
2023-03-17 10:01:40带你手把手解决Java常见Bug
刚开始学习Java语言的小伙伴, 很可能被各种各样的程序bug搞得焦头烂额, 甚至被劝退。别怕,小编将手把手带你了解Java中的异常体系, 如何识别Bug...详情>>
2023-03-13 16:05:00JavaScript 内的 this 指向
在 javascript 语言中, 有一个奇奇怪怪的 "关键字" 叫做 this详情>>
2023-03-07 15:21:00