انتقل إلى محتوى الدرس

Checking HTTP Status response ok فحص النجاح عبر response ok

أتقن واجهة جلب البيانات Fetch API في JavaScript: أرسل طلبات GET وPOST بالوعود، وافحص النجاح عبر response.ok، واقرأ بيانات JSON، وألغِ الطلبات المعلقة عبر AbortController.
3 صفوف تعليمية
جافا سكريبت
3,227 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

أشهر فخ برمجي في fetch(): لا يُرفض وعد fetch إلا عند انقطاع الشبكة الفعلي أو إلغاء الطلب أو حظر CORS؛ أما إذا رد الخادم بكود خطأ مثل 404 أو 500 فإن الوعد ينجح بشكل طبيعي! لذا افحص دائماً خاصية response.ok (التي تكون true للأكواد 200..299):

الحالة الشبكيةهل يُرفض وعد fetch؟قيمة response.okالإجراء البرمجي الصحيح
رد ناجح 200..299لا (يفي بكائن الاستجابة)trueالمتابعة لقراءة الجسم عبر await res.json()
خطأ خادم 404 أو 500لا! (يعتبر وصول الرد نجاحاً شبكياً)falseرمي خطأ صريح: if (!res.ok) throw ...
انقطاع اتصال أو إلغاءنعم (يُرفض الوعد فوراً)لا توجد استجابةالتقاط العطل داخل كتلة catch (err)
الصف 2 كود برمجي
JavaScript
const url = 'data:application/json,' +
  encodeURIComponent('{"course":"JavaScript","lessons":159}');
async function loadCatalog() {
  const out = document.getElementById('ft-out');
  const res = await fetch(url);
  if (!res.ok) throw new Error('HTTP ' + res.status);
  const d = await res.json();
  out.textContent = d.course + ': ' + d.lessons + ' lessons';
}
loadCatalog();
الصف 3 ملاحظة هامة