ホームページ > 記事 > ウェブフロントエンド > HTTP ステータス コードに基づいてフェッチ エラーを適切に処理するにはどうすればよいでしょうか?
応答ステータスによるフェッチ エラーのキャプチャ
Redux および redux-promise-middleware ライブラリで fetch() API を利用しています。コード スニペット内で、応答ステータスをチェックし、エラーを処理しようとしています。ただし、Promise が拒否されないという問題が発生しています。
Fetch Promise の拒否について
Fetch Promise は、次の理由によってのみ拒否されるという点で独特です。ネットワークエラー。 4xx (クライアント エラー) や 5xx (サーバー エラー) などのステータス コードを持つ応答は、ネットワーク以外のエラーとみなされます。したがって、拒否はトリガーされません。
問題の解決
この制限を克服してステータス関連のエラーを処理するには、手動でエラーをスローする必要があります。
fetch(url) .then((response) => { if (response.ok) { return response.json(); } throw new Error('Something went wrong'); }) .then((responseJson) => { // Handle the data }) .catch((error) => { // Handle the error });
このコード スニペットは、応答ステータス (response.ok) を検証します。 OK でない場合は、Promise#catch() ハンドラーをトリガーするエラーがスローされます。これにより、HTTP ステータス コードに基づいてエラーを適切に処理できます。
以上がHTTP ステータス コードに基づいてフェッチ エラーを適切に処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。