
Dlaczego warto używać interceptorów w Axios
Interceptors są klasycznym narzędziem używanym w bibliotece Axios, który pozwala na kontrolę i zmianę żądań HTTP. W niniejszym artykule przedstawimy korzyści płynące z ich wykorzystania oraz przykłady sytuacji, w których możesz je użyć.
CEO
06 cze 2023
Interceptory to bardzo przydatne narzędzie w bibliotece Axios. Działają one jako pośrednicy w wysyłaniu żądań i otrzymywaniu odpowiedzi. Dzięki nim możemy modyfikować żądania i odpowiedzi w locie, dodawać nagłówki czy obsługiwać błędy. Interceptory działają w łańcuchu, w kolejności, w jakiej zostaną dodane do konfiguracji Axios. Oznacza to, że możemy mieć wiele interceptorów, każdy wykonujący specyficzne zadanie. Dzięki nim kod staje się bardziej modularny i łatwiej go utrzymać.
Powiązane case studies


Marketplace premium kosmetyków na 9 rynkach europejskich - Shopify Plus
Klient: Baza Cosmetics

Platforma edukacyjna generująca materiały do nauki programowania z ChatGPT
Klient: Klient (Aplikacja webowa do nauki programowania)
Branża: Edukacja / EdTech
Dlaczego warto używać interceptorów?
Interceptory to bardzo przydatne narzędzie do wykonywania operacji na żądaniach i odpowiedziach w bibliotece Axios. Pozwalają na modyfikowanie żądań lub odpowiedzi przed ich wysłaniem lub przetworzeniem. Dzięki temu dodatkowi możemy też łatwiej zarządzać naszym kodem, oddzielając obsługę poszczególnych funkcjonalności od logiki biznesowej aplikacji.

Przykłady użycia interceptorów
Dodanie interceptorów do instancji Axios daje wiele możliwości zwiększenia elastyczności i kontroli nad aplikacją. Przykładowo możemy wykorzystać je do autoryzacji zapytań wysyłanych przez aplikację poprzez dodanie odpowiedniego nagłówka w funkcji interceptora.
axios.interceptors.request.use((config) => {
const token = localStorage.getItem("token");
if (token) {
config.headers["Authorization"] = `Token ${token}`;
}
return config;
})
Interceptory pozwalają także na łatwe obsłużenie błędów w jednym miejscu aplikacji, zamiast powtarzania kodu obsługi błędów w każdym zapytaniu - na przykład wykonując przekierowanie do podstrony logowania po otrzymaniu statusu odpowiedzi HTTP 401 Unauthorized.
axios.interceptors.response.use(
() => {},
(error) => {
if (error.response.status === 401) {
window.location.replace("/login");
}
}
)
Podsumowanie
Podsumowując, stosowanie interceptorów w Axios zapewnia wiele korzyści dla programistów. Pozwalają one na łatwe dodawanie wspólnych funkcjonalności do zapytań HTTP bez potrzeby duplikacji kodu. Dzięki temu proces pisania i utrzymywania kodu jest prostszy oraz bardziej efektywny. Przechwytywacze pozwalają również na monitorowanie i modyfikowanie zapytań oraz odpowiedzi, co czyni je bardzo przydatnym narzędziem w procesie debugowania aplikacji.
FAQ
FAQ – Axios interceptors
Interceptory axios to funkcje uruchamiane przed wysłaniem żądania lub po otrzymaniu odpowiedzi — wzorzec podobny do middleware. Zastosowania: uwierzytelnianie (automatyczne doklejanie tokenów do każdego żądania), scentralizowana obsługa błędów, logowanie, transformacja danych, logika ponawiania i globalne wskaźniki ładowania. Axios pozostaje najpopularniejszym klientem HTTP w JavaScripcie, obok wbudowanego fetch i nowszych nakładek typu ky. Interceptory to jego najmocniejsza karta — pozwalają trzymać sprawy przekrojowe w jednym miejscu zamiast kopiować je przy każdym wywołaniu.
Dwa punkty zaczepienia:
- interceptor żądania — działa przed wysłaniem: modyfikuje konfigurację, nagłówki, parametry i ciało,
- interceptor odpowiedzi — działa po otrzymaniu odpowiedzi, zanim trafi ona do kodu wywołującego: przetwarza dane, obsługuje błędy.
Kanoniczny przykład: axios.interceptors.request.use(config => { config.headers.Authorization = `Bearer ${token}`; return config; }) dokleja token do każdego żądania. Obsługę błędów realizuje interceptor odpowiedzi — jedno miejsce na reakcję na 401, komunikaty i logowanie zamiast rozsianych try/catchy. Zasada: interceptory do spraw przekrojowych, nie do logiki biznesowej.
Typowe scenariusze:
- uwierzytelnianie — automatyczne doklejanie tokenów JWT i OAuth,
- odświeżanie tokenów — wykrycie wygaśnięcia, odświeżenie i ponowienie pierwotnego żądania,
- obsługa błędów — scentralizowane toasty, logowanie, przekierowania przy 401,
- wskaźniki ładowania — globalny stan na podstawie liczby trwających żądań,
- ponawianie — automatyczne retry przy błędach sieciowych,
- transformacja danych — konwencje camelCase/snake_case, parsowanie dat i kwot,
- logowanie żądań pod debugowanie i zgodność.
Przy integracjach z rodzimymi API — bramkami płatności, KSeF, systemami bankowymi — interceptory obsługują uwierzytelnianie i ponowienia w jednym miejscu.
Kanon:
- token: axios.interceptors.request.use(config => { const token = localStorage.getItem("token"); if (token) config.headers.Authorization = `Bearer ${token}`; return config; }),
- obsługa 401: axios.interceptors.response.use(r => r, error => { if (error.response?.status === 401) logout(); return Promise.reject(error); }),
- odświeżanie tokenu — wzorzec złożony: wykryj 401, odśwież, ponów żądanie; gotowe rozwiązanie to biblioteka axios-auth-refresh,
- ponawianie — axios-retry zamiast własnej implementacji.
Warto też znać nowoczesną alternatywę: TanStack Query opakowuje axios/fetch i dostarcza retry, cache i obsługę błędów z pudełka — interceptory zostają wtedy dla warstwy autoryzacji.
W aplikacjach z wieloma wywołaniami API — zdecydowanie. Zyski: sprawy przekrojowe (tokeny, błędy, logowanie) w jednym miejscu, mniej duplikacji i łatwiejsze utrzymanie. Koszty: zachowanie „ukryte" w interceptorach bywa zaskoczeniem przy debugowaniu, a wzorce typu odświeżania tokenów mają swoje pułapki — stąd przewaga sprawdzonych bibliotek nad własnymi implementacjami. Zdrowa architektura warstwy HTTP w nowoczesnej aplikacji: axios z interceptorami do autoryzacji i błędów, TanStack Query do stanu serwera (cache, retry, invalidacja) — ten duet pokrywa niemal wszystkie potrzeby i jest dziś standardem profesjonalnego frontendu.
Blog
Powiązane artykuły
AJAX - co to jest AJAX i jak działa?
AJAX, czyli Asynchronous JavaScript and XML. Jest to technologia, która umożliwia przetwarzanie danych na stronie internetowej bez konieczności przeładowania całej strony. AJAX umożliwia szybsze ładowanie stron internetowych, interaktywność interfejsu użytkownika i efektywniejsze przetwarzanie danych.
Wirtualny spacer 3D dla dewelopera - nowoczesny sposób prezentacji inwestycji
Klient chce wejść do mieszkania, którego jeszcze nie ma. Pokazujemy, co kryje się pod hasłem wirtualnego spaceru 3D, jak połączyć go ze stroną inwestycji i CRM oraz kiedy lepiej wydać te pieniądze inaczej.
Adaptive Apps: od statycznych interfejsów do aplikacji, które dostosowują się do użytkownika
Adaptive apps, czyli aplikacje adaptacyjne, zmieniają układ, treść i kolejność funkcji w zależności od urządzenia, sytuacji i zachowania użytkownika. Wyjaśniamy, czym różnią się od aplikacji responsywnych, gdzie adaptacja naprawdę się opłaca i jak ją wdrożyć, żeby nie zgubić użytkownika.
Mini apps - przyszłość aplikacji bez instalowania kolejnych programów?
Mini apps to lekkie aplikacje uruchamiane w komunikatorze, na iPhonie albo w czacie AI, bez pobierania ze sklepu. Wyjaśniamy, gdzie działają, czym różnią się od PWA i pełnej aplikacji mobilnej, jakie mają ograniczenia i kiedy firma nie powinna w nie inwestować.
Oxc: nowa generacja narzędzi dla JavaScript i TypeScript
Oxc to zestaw narzędzi dla JavaScript i TypeScript napisany w Rust, który sprawdza, formatuje i przetwarza kod wielokrotnie szybciej niż ESLint, Prettier czy Babel. Wyjaśniamy, z czego się składa, ile czasu realnie oszczędza i kiedy zmiana narzędzi w projekcie ma sens.
Rolldown: nowa generacja narzędzi do budowania aplikacji frontendowych
Rolldown to napisany w Rust bundler, który od Vite 8 buduje aplikacje frontendowe zamiast duetu esbuild i Rollup. Wyjaśniamy, czym jest bundler, co Rolldown zmienia w codziennej pracy zespołu, ile czasu oszczędza i w jakich projektach nie ma zastosowania.






