【保存版】AxiosでHTTPエラーをスマートにキャッチ! ステータスコード取得から詳細な情報処理まで

2024-06-13

AxiosでHTTPエラーのステータスコードを取得する方法

Axiosは、JavaScriptでHTTPリクエストを簡単に行うためのライブラリです。エラーが発生した場合、エラーオブジェクトがcatchブロックに渡されます。このオブジェクトには、ステータスコードを含む、エラーに関する情報が含まれています。

ステータスコードの取得

以下のコードは、axiosを使用してAPIにGETリクエストを行い、エラーが発生した場合にステータスコードを取得する方法を示しています。

axios.get('/users/123')
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    if (error.response) {
      console.log('ステータスコード:', error.response.status);
    } else {
      console.log('エラー:', error.message);
    }
  });

このコードでは、以下の処理が行われます。

  1. axios.getを使用して、/users/123へのGETリクエストを行います。
  2. リクエストが成功した場合、thenブロックが実行され、レスポンスデータがコンソールに出力されます。
  3. リクエストが失敗した場合、catchブロックが実行されます。
  4. error.responseが存在する場合、ステータスコードがコンソールに出力されます。

補足

  • ステータスコード以外にも、エラーオブジェクトには以下の情報が含まれています。
    • エラーメッセージ
    • ヘッダー
    • データ



    axios.get('/users/123')
      .then(function (response) {
        console.log(response.data);
      })
      .catch(function (error) {
        if (error.response) {
          console.log('ステータスコード:', error.response.status);
          console.log('エラーメッセージ:', error.response.data);
          console.log('ヘッダー:', error.response.headers);
        } else {
          console.log('エラー:', error.message);
        }
      });
    
    • エラーメッセージとヘッダーの出力: error.responseが存在する場合、ステータスコードに加えて、エラーメッセージとヘッダーもコンソールに出力します。これにより、エラーの原因をより詳しく調査することができます。
    • エラーオブジェクトの詳細な表示: console.log(error)を使用して、エラーオブジェクト全体を出力します。これは、デバッグに役立ちます。

    このコードを参考に、状況に合わせてカスタマイズして、独自のエラー処理ロジックを作成することができます。




    AxiosでHTTPエラーのステータスコードを取得するその他の方法

    try / catch を使用する

    try {
      const response = await axios.get('/users/123');
      console.log(response.data);
    } catch (error) {
      if (error.response) {
        console.log('ステータスコード:', error.response.status);
        console.log('エラーメッセージ:', error.response.data);
        console.log('ヘッダー:', error.response.headers);
      } else {
        console.log('エラー:', error.message);
      }
    }
    

    この方法は、非同期コードでエラー処理を行う場合に役立ちます。

    カスタムエラーハンドラを作成する

    const customErrorHandler = (error) => {
      if (error.response) {
        console.log('ステータスコード:', error.response.status);
        console.log('エラーメッセージ:', error.response.data);
        console.log('ヘッダー:', error.response.headers);
      } else {
        console.log('エラー:', error.message);
      }
    };
    
    axios.get('/users/123')
      .then(function (response) {
        console.log(response.data);
      })
      .catch(customErrorHandler);
    

    この方法は、エラー処理ロジックを再利用したい場合に役立ちます。

    Axios interceptorsを使用する

    axios.interceptors.response.use(null, function (error) {
      if (error.response) {
        console.log('ステータスコード:', error.response.status);
        console.log('エラーメッセージ:', error.response.data);
        console.log('ヘッダー:', error.response.headers);
      } else {
        console.log('エラー:', error.message);
      }
    });
    
    axios.get('/users/123');
    

    この方法は、すべてのAxiosリクエストに対してエラー処理を行う場合に役立ちます。

    • シンプルな場合は、try / catch を使用する方が簡単です。
    • エラー処理ロジックを再利用したい場合は、カスタムエラーハンドラを作成します。
    • すべてのAxiosリクエストに対してエラー処理を行う場合は、Axios interceptors を使用します。

      javascript axios


      Visual Studio 2008でJavaScript/jQueryのIntelliSenseを有効にする方法

      Visual Studio 2008 で JavaScript/jQuery の IntelliSense を有効にするには、以下の手順が必要です。まず、jQuery IntelliSense ファイル (jquery-vsdoc. js) をダウンロードする必要があります。このファイルは、jQuery の公式ダウンロードページ (https://jquery...


      ファイル名を取得して自由自在!JavaScriptでファイル操作をマスターしよう

      HTMLの <input type="file"> 要素を使ってファイルをアップロードする場合は、File オブジェクトを使ってファイル名を取得できます。ブラウザのURLからファイル名を取得するには、URL オブジェクトを使うことができます。...


      JavaScriptで文字列を最初の指定文字で分割する方法:split vs substr/substring/slice

      この解説では、JavaScript、jQuery、正規表現を用いて、文字列を最初の指定文字でのみ分割する方法を紹介します。解説JavaScriptsplit() メソッドは、文字列を指定された文字列で分割し、配列を返します。第1引数に区切り文字、第2引数に分割数を指定します。...


      async/awaitでスマートに記述!JavaScriptでページ読み込み時に関数を確実に実行する方法

      JavaScript で onload イベントまたは DOMContentLoaded イベントを使用して、ページ読み込み時に関数を実行できます。onload イベントページ全体の読み込みが完了したときに実行されます。画像などのリソース読み込みも含みます。...


      JavaScript、Node.js、Express を使って 404 エラー処理

      Express は、Node. js 用の Web アプリケーション フレームワークです。迅速で効率的な Web アプリケーションを構築するために広く使用されています。Express を使用して、さまざまな種類の HTTP レスポンスを送信できます。404 レスポンスは、リクエストされたリソースが見つからない場合に送信される一般的な応答です。...