Skip to content
>_devvkit
$devvkit learn --librarie axios-guide

Axios Guide

[http][api][networking]
JavaScript / TypeScript
Install
npm install axios

Axios wraps XMLHttpRequest and Node's http module with a consistent Promise-based API.

Interceptors let you add auth tokens or handle 401 redirects globally.

Request cancellation via AbortController prevents state updates on unmounted components.

Basic Usage

GETFetch data.
const { data } = await axios.get('/api/users');
POSTSend data.
const { data } = await axios.post('/api/users', { name: 'Alice', email: 'a@b.com' });
ConcurrentParallel requests.
const [users, posts] = await Promise.all([axios.get('/api/users'), axios.get('/api/posts')]);
Config objectFull config instead of chain.
const { data } = await axios({ method: 'GET', url: '/api/users', params: { page: 1 }, timeout: 5000 });

Interceptors

Request interceptorAdd auth token.
axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) config.headers.Authorization = 'Bearer ' + token;
  return config;
});
Response interceptorHandle 401.
axios.interceptors.response.use(res => res, error => {
  if (error.response?.status === 401) window.location.href = '/login';
  return Promise.reject(error);
});

Error Handling

Error handlingDifferentiate errors.
try { await axios.get('/api/users'); }
catch (error) {
  if (axios.isAxiosError(error)) console.error('HTTP:', error.response?.status);
  else console.error('Network:', error);
}

Cancellation

Cancel requestAbortController.
const controller = new AbortController();
axios.get('/api/users', { signal: controller.signal });
controller.abort();

Instances

Axios instancePre-configured instance.
const api = axios.create({ baseURL: 'https://api.example.com', timeout: 10000 });
const { data } = await api.get('/users');