⊗jsSpAXFCE 248 of 294 menu

JavaScriptにおけるAJAXエラーの完全なインターセプト

fetchが返すPromiseは、 ネットワークエラーが発生した場合にのみ エラーで拒否されます。サーバーが 404500 のような ステータスで応答した場合、 Promiseは成功として解決されますが、 ステータス okfalse に設定されます。

両方のタイプのエラーをインターセプトしましょう:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { console.log('不正な応答ステータス'); return ''; } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

HTTP応答ステータスが不正な場合のエラーも catch ブロックで捕捉されるようにします。 そのためには、throw を通じて エラーを次に伝播させます:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { throw new Error('不正な応答ステータス'); } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

リクエストが成功した場合はページのテキストを出力し、 何か問題があった場合はエラーを出力してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否