JavaScript'te AJAX Hatalarını Tam Yakalama

fetch'in döndürdüğü Promise, sadece bir ağ hatası oluştuğunda hata ile sonuçlanır. Sunucu 404 veya 500 durum koduyla bir yanıt döndürdüyse, Promise başarıyla tamamlanır, ancak ok durumu false olarak ayarlanır.

Her iki hata türünü de yakalayalım:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        console.log('kötü yanıt durumu');
        return '';
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});

Kötü HTTP yanıt durumuyla ilişkili hatanın da catch bloğu tarafından yakalanmasını sağlayalım. Bunun için, hatayı throw ile ileriye doğru fırlatalım:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        throw new Error('kötü yanıt durumu');
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});
Задание 1

İstek başarılı olduysa sayfanın metnini yazdırın, aksi takdirde bir hata yazdırın.