如何正确使用 Interceptorce 与 axios + React
2021-03-19
870
这是我在 React 应用中的 axios 实例。我想要做的是从服务器捕获错误并根据错误将其静音。例如,如果存在具有此名称的用户,我想静音错误并仅返回警报消息。但拦截器不会触发:
import axios from "axios";
const instance = axios.create({
baseURL: "http://localhost:8000",
withCredentials: true,
timeout: 1000
})
instance.interceptors.request.use(
request => request,
error => {
console.log(error)
console.log(error.response)
console.log(error.response.message)
return { data: { status: 'fail' } };
}
)
export default instance
现在我只想 console.log 它,但它仍然破坏了整个逻辑并引发错误((
2个回答
请求拦截器
(axios.interceptors.request.use)
一般用于配置header中的参数,如
instance.interceptors.request.use(config => {
console.log('request interceptor in here')
config.headers = {
...config.headers,
'x-requested-with': 'XMLHttpRequest'
// other parameters...
}
return config
})
而响应拦截器
(axios.interceptors.response.use)
用于拦截返回的结果或者错误,如
instance.interceptors.response.use(response => {
console.log('success', response)
}, error => {
console.log('fail', error)
})
linchong
2021-03-19
您应该使用响应
拦截器
(
axios.interceptors.response.use
) 来拦截响应并处理错误。
instance.interceptors.response.use(
(response) => response,
(error) => {
console.log(error)
// ...
}
)
Arun Kumar Mohan
2021-03-19