⊗jsSpAXFCE 248 of 294 menu

Kompletní zachycení AJAX chyb v JavaScriptu

Promise, který vrací fetch, je dokončen s chybou pouze tehdy, pokud nastala chyba sítě. Pokud server vrátí odpověď se statusem 404 nebo 500, tak bude promise úspěšně dokončen, ale status ok bude nastaven na false.

Pojďme zachytit oba typy chyb:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { console.log('špatný status odpovědi'); return ''; } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Uděláme to tak, aby chyba, spojená se špatným statusem HTTP odpovědi, byla také zachycena blokem catch. K tomu ji pošleme dál pomocí throw:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { throw new Error('špatný status odpovědi'); } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Vypište text stránky, pokud byl požadavek úspěšný, a chybu, pokud se něco pokazilo.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout