
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.
Gamifikacja w e-learningu - sposoby na większe zaangażowanie użytkowników
Gamifikacja w e-learningu działa, ale słabiej, niż obiecują prezentacje, i potrafi zaszkodzić. Zamiast listy mechanik pokazujemy pięć potrzeb uczącego się, z których każda wymaga innych narzędzi, oraz to, jak sprawdzić, czy punkty i odznaki naprawdę coś zmieniają.
Microlearning w aplikacjach mobilnych - jak stworzyć produkt, który angażuje użytkowników
Microlearning w aplikacjach mobilnych to nauka w porcjach na kilka minut, ale sama krótkość niczego nie załatwia. Rozkładamy jedną sesję na części, wyjaśniamy, jak działają powtórki, skąd brać treści, co musi stać pod spodem i po czym poznać, że użytkownicy naprawdę się uczą.
Crystallize jako headless commerce - kiedy warto go wybrać?
Crystallize to norweska platforma headless commerce, która łączy zarządzanie danymi produktowymi, treści i sprzedaż w jednym systemie. Pokazujemy cztery sygnały, że pasuje do Twojej firmy, trzy sytuacje, w których lepiej wybrać coś innego, i jak policzyć jej koszt, zanim przyjdzie pierwszy rachunek za użycie.
Centra - headless e-commerce dla marek premium i globalnych
Centra to szwedzka platforma headless e-commerce dla marek modowych i lifestyle'owych, które sprzedają na wielu rynkach i jednocześnie prowadzą hurt. Na przykładzie marki, która przerosła swój sklep, pokazujemy, co Centra załatwia, czego nie zrobi za firmę i kiedy lepiej wybrać Shopify Plus lub platformę open source.
Lynx - nowa alternatywa dla React Native?
Lynx to otwartoźródłowy framework od ByteDance, na którym działają fragmenty TikToka. Wyjaśniamy, czym różni się od React Native, dlaczego jest silnikiem do osadzania, a nie gotowym zestawem do budowy aplikacji, i w jakich trzech sytuacjach ma sens, a w jakich nie.






