axios如何在使用全局拦截器的情况下为某个请求单独设置响应拦截?

作者站长头像
站长
· 阅读数 9

axios如何在使用全局拦截器的情况下为某个请求单独设置响应拦截?axios如何在使用全局拦截的情况下为某个请求单独设置响应拦截?如图,这里响应出现异常,会直接弹出异常提示,但是某些接口我不想直接弹异常,所以有没有什么比较好的方法能再度拦截一下?本来想着如果可以传入一个回调,没传就执行默认异常逻辑,但是琢磨了半天好像这个回调不好实现啊

回复
1个回答
avatar
test
2024-06-23

可以添加自定义是否显示异常提示的参数,大致逻辑如下:

  1. 在发送请求的地址配置自定义参数,比如: showErrorTips

    # 模拟请求
    export const login = (data) => {
     return request.post('/login', data, { showErrorTips: true })
    }
  2. 拦截响应中处理是否显示提示answer image

    # 在响应的 response 属性 config 中看见有自定义的参数 showErrorTips
    可以根据此参数,如果为true,则显示错误提示
    
    service.interceptors.response.use(
     (response) => {
         // ... 省略其他
         const { config } = response;
         if (config.showErrorTips) {
             // 给出提示
         }
     },
     (error) => {
         // ... 省略其他
     }
    )
  3. 给出提示可以默认配置为 true,则所有接口就会展示提示,个别不需要展示,则在请求配置为 false
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容