HTTP通信をラクに実装できる「axios」の基本

最近、HTTP通信にaxiosを使う機会があったので、基本的な使い方からエラー処理などまで、備忘録として基本的な部分をまとめておきます。
axios
まずaxiosは「アクシオス」と読み、もともとギリシャ語で「値する」という意味らしいです。
PromiseベースのHTTPクライアントで、非同期なHTTP通信が簡単に実装できます。
また、Vue.jsでは非同期通信にaxiosを使うことがスタンダードになっています。
インストール方法
npmを使ってインストールする場合は下記。
$ npm install axios --saveyarnの場合は下記コマンド。
$ yarn add axiosCDNを利用する場合のタグを追加します。
<script src="https://unpkg.com/axios/dist/axios.min.js"><script>基本の使い方
GET通信
GET通信をしたいときはaxios.get()を使用します。
第1引数にURLを指定し、通信の結果によってそこから分岐します。
- .then():通信が成功したときの処理
- .catch():エラー時の処理
- .finally():通信が成功しても失敗しても行う処理
axios.get('URL')
.then(function (response) {
// 通信が成功したときの処理
console.log(response);
})
.catch(function (error) {
// エラー時の処理
console.log(error);
})
.finally(function () {
// 常に実行する処理
});レスポンスは下記になります。
response.dataにデータが入っているので、そこさえ覚えておけばOKです。
| レスポンス | 中身 |
|---|---|
| response.data | レスポンスデータ |
| response.status | ステータスコード |
| response.statusText | ステータステキスト |
| response.header | レスポンスヘッダ |
| response.config | コンフィグ |
POST通信
POST通信をしたいときはaxios.post()を使用します。
第1引数にURLを指定し、第2引数に送信したいデータを指定します。
axios.post('/user', {
id: 1,
name: 'user_name'
})
.then(function (response) {
// 通信が成功したときの処理
console.log(response.data);
})
.catch(function (error) {
// エラー時の処理
console.log(error);
})
.finally(function () {
// 常に実行する処理
});axios APIの使用
axios()で様々なオプションを指定することで、カスタムヘッダーの送信やTokenの送信、ベーシック認証のかかったページへの通信も可能です。
GET通信の基本の形が下記になります。
axios({
method: 'get',
url: 'GETするURL',
})POST通信の場合は下記になります。
axios({
method: 'post',
url: 'POSTするURL',
data: {
id: 1,
name: 'user_name'
}
});カスタムヘッダーの送信
カスタムヘッダーの追加は「headers」で行えます。
axios({
method: 'post',
url: 'POSTするURL',
headers: {
// ここにカスタムヘッダーの内容を追加
},
})ベーシック認証のかかったページへの通信
ベーシック認証のかかったページへの通信を行いたい場合は「auth」内の「username」と「password」にユーザー名とパスワードを入力するだけです。
axios({
method: 'get',
url: 'GETするURL',
auth: {
username : 'user',
password : 'pass'
},
})fetchなどでベーシック認証をしようとすると、btoaを使ってユーザー名とパスワードを「:」で区切った文字列を変換しないといけなかったりします。
それと比べると分かりやすくてラクですね。

ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
Visual Studio Codeのエクスプローラー上でファイル・フォルダの複製ができるようになる拡張機能「Duplicate action」
Movable TypeでAssetURLやEntryPermalink・ContentPermalinkで出力されるパスを絶対パスから相対パスに変える
アクセス解析ツールの定番!!Googleアナリティクスの登録方法
gzip圧縮をしてウェブサイトの表示スピードを上げる方法
Vue CLIのtitleタグやmetaタグの設定方法
属性・Class・IdなどHTMLタグの細かい部分を見ていこう!!
W3 Total Cacheをレスポンシブデザインのテーマで使用する時の注意ポイント!!【WordPress】
CSSで::placeholderにスタイルを設定する方法
Backlogで2段階認証を設定後、SourceTreeでアカウントエラーが発生する場合の対処法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法