Web開発者の必需品!ブラウザとサーバーの両方で使えるHTTP通信ライブラリ — axios

axios/axiosJavaScript108.9k

axiosは、Webサイトやアプリケーションがサーバーとデータをやり取りするための通信ライブラリ(道具箱のようなもの)です。ブラウザ上のJavaScriptからでも、サーバー側のNode.jsからでも同じ書き方でデータの送受信ができるため、開発者にとって非常に便利です。axiosはPromise(非同期処理を扱いやすくする仕組み)に対応しており、JSONデータの自動変換、リクエストのキャンセル、エラーハンドリング、進捗の取得など豊富な機能を備えています。npmで毎月数千万回以上ダウンロードされている、JavaScript界で最も人気のあるHTTP通信ライブラリの一つです。

🔥 なぜ話題?

axiosはJavaScriptのWeb開発において事実上の標準ライブラリとして長年使われており、最近のバージョンではFetchアダプター対応やHTTP/2サポートなど現代的な機能が追加されています。フロントエンドからバックエンドまで幅広く使えるユニバーサルな設計が、React・Vue・Next.jsなどのフレームワーク利用者から継続的に支持されています。

💡 こう使える!

例えば、天気予報アプリを作るとき、外部の天気情報API(データ提供サービス)から最新の天気データを取得したい場合に、axiosを使えば `axios.get('https://api.weather.com/today')` のようにたった1行で通信処理が書けます。取得したデータは自動的にJSON形式に変換され、エラーが起きた場合のハンドリングも簡潔に記述できます。

ユースケース: Webサイトやアプリがサーバーからデータを取得したり、データを送信したりする通信処理を簡単かつ安全に実装するために使います。

  • ブラウザとNode.jsの両方で同じ書き方で使えるHTTP通信ライブラリ
  • JSONの自動変換、リクエストのキャンセル、XSRF防御など豊富な機能を搭載
  • Fetchアダプター、HTTP/2対応、進捗取得、レート制限など最新機能も充実
GitHubで見る →

Promise based HTTP client for the browser and node.js

技術情報

言語

JavaScript

ライセンス

MIT

最終更新

2026-04-02

スター数

108,942

フォーク数

11,589

Issue数

354

トピック

hacktoberfesthttp-clientjavascriptnodejspromise

技術詳細

アーキテクチャ・仕組み

axiosはPromiseベースのHTTPクライアントで、環境に応じて内部の通信方式(アダプター)を自動的に切り替えます:

  • ブラウザ: XMLHttpRequest(XHR)またはFetch API
  • Node.js: http/https モジュール

adapter オプションで 'xhr''fetch''http' を明示的に指定したり、配列で優先順位を設定することも可能です。

対応環境・プラットフォーム

  • ブラウザ: Chrome、Firefox、Safari、Opera、Edge(いずれも最新版)
  • Node.js: http/httpsモジュール経由
  • Tauri: カスタムfetchアダプター経由で対応
  • SvelteKit: カスタムfetchアダプター経由で対応
  • HTTP/2: 専用オプションでサポート

主要な機能一覧

  • リクエストメソッドエイリアス: axios.get(), axios.post(), axios.put(), axios.delete(), axios.patch() など
  • インターセプター: リクエスト・レスポンスの前後にカスタム処理を挟める(認証トークンの自動付与など)
    • リクエストインターセプターはLIFO(後入れ先出し)、レスポンスインターセプターはFIFO(先入れ先出し)で実行
    • synchronous フラグや runWhen 関数で条件付き実行も可能
  • 自動JSON変換: リクエスト/レスポンスのJSONデータを自動でシリアライズ・パース
  • FormData自動シリアライズ: multipart/form-datax-www-form-urlencoded への自動変換
  • リクエストキャンセル: AbortController によるキャンセル機能
  • XSRF防御: クロスサイトリクエストフォージェリ対策のクッキー・ヘッダー自動設定
  • 進捗イベント: アップロード/ダウンロードの進捗取得(onUploadProgress, onDownloadProgress
  • レート制限: maxRate オプションによるアップロード/ダウンロード速度制限(Node.jsのみ)
  • AxiosHeaders: ヘッダーを操作するための専用クラス
  • Fetchアダプター: ブラウザのFetch APIを直接利用可能

設定オプション(主要なもの)

オプション説明
baseURLリクエストURLのベースパス
timeoutタイムアウト(ミリ秒、デフォルト0=無制限)
headersカスタムHTTPヘッダー
paramsURLクエリパラメータ
responseTypeレスポンス形式(json, text, stream 等)
withCredentialsクロスオリジンリクエストでクッキーを送るか
proxyプロキシサーバーの設定
maxRedirects最大リダイレクト回数(デフォルト21)
decompressレスポンスの自動解凍(Node.jsのみ)
allowAbsoluteUrls絶対URLがbaseURLを上書きするか

エラーハンドリング

axiosは独自のエラーコード体系を持ち、ERR_NETWORKERR_BAD_REQUESTERR_CANCELEDETIMEDOUT など詳細なエラー種別を提供します。error.response(サーバー応答あり)、error.request(応答なし)の判別も可能です。

TypeScript対応

axiosはTypeScriptの型定義を内蔵しており、追加の型定義パッケージは不要です。レスポンスのジェネリクス型指定にも対応しています。

ライセンス

MITライセンスで公開されており、商用利用を含め自由に使用できます。

セマンティックバージョニング

axiosは安定版に到達するまで、マイナーバージョンで破壊的変更が入る可能性があります。

インストール・クイックスタート

パッケージマネージャーでインストール

npmの場合:

npm install axios

yarnの場合:

yarn add axios

pnpmの場合:

pnpm add axios

CDNで直接読み込む場合

<script src="https://cdn.jsdelivr.net/npm/axios@1.13.2/dist/axios.min.js"></script>

基本的な使い方

import axios from 'axios';

// GETリクエスト
const response = await axios.get('/user?ID=12345');
console.log(response.data);

// POSTリクエスト
const res = await axios.post('/user', {
  firstName: 'Fred',
  lastName: 'Flintstone'
});

参考になる外部の関連記事

関連リポジトリ

完全無料でプログラマーになれる!10万人以上が転職に成功した学習プラットフォーム — freeCodeCamp

freeCodeCamp/freeCodeCampTypeScript441.8k

freeCodeCampは、プログラミング・数学・コンピュータサイエンスを完全無料で学べるオンライン学習プラットフォームです。寄付で運営される非営利団体が提供しており、Webサイト制作からPython

Googleフォトはもういらない?自分のサーバーで写真・動画を管理できる高性能オープンソース — immich

immich-app/immichTypeScript97.1k

immichは、自分のサーバー(自宅のPCやクラウドサーバー)上で写真や動画を管理できるソフトウェアです。Googleフォトのような使いやすいインターフェースを持ちながら、データを自分自身で完全に管理

Salesforceはもう要らない?コミュニティが作るオープンソースCRMの決定版 — twenty

twentyhq/twentyTypeScript43.2k

Twentyは、高額で囲い込みが強い既存のCRM(顧客管理システム)に代わる、無料で使えるオープンソースの顧客管理ツールです。NotionやAirtableのような直感的で現代的なデザインを採用してお

JavaScriptの品質を自動チェック!コードの問題を見つけて修正を提案 — eslint

eslint/eslintJavaScript27.1k

ESLintは、JavaScriptのコードを自動で検査し、バグや品質の問題を見つけて教えてくれるツールです。文章校正ソフトのように、コードの書き方の問題(変数名の付け方、セミコロンの付け忘れなど)を

開発者なら誰でも無料でオシャレな「.is-a.dev」ドメインが手に入る! — register

is-a-dev/registerJavaScript9.9k

is-a-devは、開発者が自分の個人サイト用に「○○.is-a.dev」という見栄えの良いサブドメイン(Webアドレスの一種)を無料で取得できるサービスです。GitHub上でファイルを追加してリクエ