axios如何在使用全局拦截器的情况下为某个请求单独设置响应拦截?
axios如何在使用全局拦截的情况下为某个请求单独设置响应拦截?如图,这里响应出现异常,会直接弹出异常提示,但是某些接口我不想直接弹异常,所以有没有什么比较好的方法能再度拦截一下?本来想着如果可以传入一个回调,没传就执行默认异常逻辑,但是琢磨了半天好像这个回调不好实现啊
回复
1个回答
test
2024-06-23
可以添加自定义是否显示异常提示的参数,大致逻辑如下:
在发送请求的地址配置自定义参数,比如:
showErrorTips
# 模拟请求 export const login = (data) => { return request.post('/login', data, { showErrorTips: true }) }
拦截响应中处理是否显示提示
# 在响应的 response 属性 config 中看见有自定义的参数 showErrorTips 可以根据此参数,如果为true,则显示错误提示 service.interceptors.response.use( (response) => { // ... 省略其他 const { config } = response; if (config.showErrorTips) { // 给出提示 } }, (error) => { // ... 省略其他 } )
- 给出提示可以默认配置为
true
,则所有接口就会展示提示,个别不需要展示,则在请求配置为false
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容