#javascript #axios #httprequest
#javascript #axios #httprequest
Вопрос:
Я пытаюсь настроить перехватчик запросов и ответов для Axios, когда я делаю запросы Post, однако я могу заставить отвечать только перехватчик запросов, и ничего больше, я включил пример того, что он не работает:
Вот настройка axios:
import axios from "axios";
axios.defaults.baseURL = "https://btk7dl15c9.api.quickmocker.com";
axios.interceptors.request.use(
async (config) => {
console.log("request ok");
return config;
},
(error) => {
console.log("request error");
return Promise.reject(error);
}
);
axios.interceptors.response.use(
(response) => {
console.log("response ok");
return response;
},
(error) => {
console.log("response error");
return Promise.reject(error);
}
);
export default {
methods: {
axiosPost(url, data) {
return axios.post(url, data);
}
}
};
https://codesandbox.io/s/keen-shockley-xccsx
Мне нужно иметь возможность перехватывать 401, чтобы иметь возможность выполнять вызов обновления токена (не входит в пример)
Комментарии:
1. в вашем коде нет ничего плохого. даже ваш пример работает. посмотрите на журнал консоли
Error: Request failed with status code 401
2. Проблема в том, что я хочу иметь возможность фиксировать эту ошибку с помощью перехватчиков, поскольку мне нужно будет иметь возможность обновлять токены
3. да, перехватчик не работает. даже если ответ равен 401
Ответ №1:
Вы использовали "axios": "0.21.2"
, в котором, похоже, есть ошибка в перехватчике, которую они исправили v0.21.3
если вы 0.21.3
согласны или 0.21.1
согласны с этим, это должно исправить вашу проблему.
проверьте журнал выпуска: https://github.com/axios/axios/releases/tag/0.21.3
Комментарии:
1. Это исправляет это! Спасибо!