![]() |
1
143
简单来说,它更像是每个http操作的检查点。所做的每个api调用都通过这个拦截器传递。 那么,为什么是两个拦截器?
一些请求拦截器用例- 假设您要在发出请求之前进行检查,您的凭据是否有效?因此,您可以在拦截器级别检查您的凭据是否有效,而不是实际进行api调用。 假设您需要为每个请求附加一个令牌,而不是在每个axios调用中复制令牌添加逻辑,您可以创建一个拦截器,在每个请求上附加一个令牌。 一些响应拦截器用例- 假设您得到了一个响应,并根据api响应推断用户已登录。因此,在响应拦截器中,可以初始化处理用户登录状态的类,并在收到的响应对象上相应地更新它。 假设您请求了一些具有有效api凭据的api,但您没有访问数据的有效角色。因此,您可以跳转一个来自响应拦截器的警报,说用户是不允许的。这样,您就可以避免未经授权的api错误处理,您必须对每个axios请求执行该错误处理。
希望这有帮助:) 编辑 由于这个答案越来越受欢迎,下面是一些代码示例
=>万一是个
=>你甚至可以
在拦截器级别解析api响应,并向下传递解析的响应,而不是原始响应。如果api在多个地方以相同的方式使用,那么它可以节省您一次又一次地编写解析逻辑的时间。一种方法是在
一次,在响应拦截器中,我们可以像这样使用它:
所以,在这种情况下,只要有
=>你甚至可以看到
|
![]() |
2
17
它就像一个中间件,基本上是在任何请求(无论是GET、POST、PUT、DELETE)或任何响应(从服务器得到的响应)上添加的。 它通常用于涉及授权的情况。 看看这个: Axios interceptors and asynchronous login 下面是另一篇关于这一点的文章,有一个不同的例子: https://medium.com/@danielalvidrez/handling-error-responses-with-grace-b6fd3c5886f0
|
![]() |
3
13
例如,如果要捕获从发送请求到收到响应的时间,可以使用以下代码:
|
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 6 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 6 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 6 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 6 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 6 月前 |