MyTetra Share
Делитесь знаниями!
Перехват всех запросов и ответов в Axios
13.03.2018
22:21
Автор: br0ke
Текстовые метки: javascript, js, axios, intercept, interceptor, interceptors, request, response
Раздел: Информационные технологии - JavaScript - axios

Библиотека axios позволяет перехватывать все запросы и ответы и применять к ним определенную программную логику. Делается следующим образом.


// Создаем экземпляр axios.

// Можно и не создавать, но тогда все последующие методы

// нужно применять к глобальному объекту axios.

const instance = axios.create();


// Указываем адрес бэкенда
instance.defaults.baseURL = backendURL;

// Указываем заголовки по умолчанию
instance.defaults.headers.post['Content-Type'] = 'application/json';

// Перехватчик для запросов

// Добавляем данные для авторизации с помощью перехватчика (interceptors)
instance.interceptors.request.use(config => {
config.auth = {
username: vue.$store.getters.token,
password: 'qwe'
};
return config;
});


// Перехватчик для ответов

// Проверяем ответ на ошибку авторизации и показываем пользователю форму логина
instance.interceptors.response.use(
// Обработчик для успешного случая; просто пропускаем ответ дальше

res => {
return res;
},

// Обработчик для ошибки
error => {
if (error.response.status === 401) {
vue.$store.commit('signOut');
}
return Promise.reject(error);
}
);



 
MyTetra Share v.0.52
Яндекс индекс цитирования