В моем SPA я использую axios для отправки запросов к API.В настоящее время я использую перехватчики запросов axios для добавления заголовков аутентификации к запросам, но я также хотел использовать их для перехвата ошибок 401 и удаления локально сохраненного токена аутентификации.
Я попытался добавить это к текущему перехватчику
axios.interceptors.response.use((response) => {
// Set user headers only if they are not blank.
// If DTA gets a lot of request quickly, it won't return headers for some requests
// so you need a way to keep headers in localStorage to getting set to undefined
if (response.headers['access-token']) {
localStorage.setItem('access-token', response.headers['access-token'])
localStorage.setItem('client', response.headers.client)
localStorage.setItem('uid', response.headers.uid)
localStorage.setItem('token-type', response.headers['token-type'])
}
if (response.status === 401) {
localStorage.setItem('access-token', '')
localStorage.setItem('client', '')
localStorage.setItem('uid', '')
localStorage.setItem('token-type', '')
}
// You have to return the response here or you won't have access to it
// later
return response
})
Но я обнаружил, что перехватчики, кажется, не работают, когда статус возвращает код ошибки.Можно ли как-нибудь отловить эти ошибки в приложении, не добавляя обработку ошибок в каждый запрос вручную?