Full avlytting av AJAX-feil i JavaScript

Promise som returneres av fetch, fullføres kun med en feil hvis det oppstod en nettverksfeil. Hvis serveren returnerte et svar med status 404 eller 500, vil promise bli fullført vellykket, men status ok vil da være satt til false.

La oss avlytte begge feiltypene:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        console.log('dårlig svarsstatus');
        return '';
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});

La oss sørge for at feil relatert til dårlig HTTP-svarsstatus også blir fanget opp av catch-blokken. For å gjøre dette, kaster vi den videre via throw:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        throw new Error('dårlig svarsstatus');
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});
Задание 1

Skriv ut sideteksten hvis forespørselen var vellykket, og feilmeldingen hvis noe gikk galt.