⊗jsSpAXFCE 248 of 294 menu

Interceptação Completa de Erros AJAX em JavaScript

A Promise retornada por fetch é rejeitada apenas se ocorrer um erro de rede. Se o servidor retornar uma resposta com status 404 ou 500, a Promise será cumprida (resolvida), mas o status ok será definido como false.

Vamos interceptar ambos os tipos de erro:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { console.log('status de resposta ruim'); return ''; } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Vamos fazer com que o erro relacionado ao status HTTP ruim também seja capturado pelo bloco catch. Para isso, vamos propagá-lo (rejeitar) usando throw:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { throw new Error('status de resposta ruim'); } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Exiba o texto da página se a requisição foi bem-sucedida, e o erro se algo deu errado.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar