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

Timeouts AbortController and CORS إلغاء الطلبات وسياسة CORS

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

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

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

قد يظل طلب الشبكة معلقاً على الاتصالات الضعيفة طويلاً؛ لذا اربط الطلب بإشارة AbortController واستدعِ ctrl.abort() عند انتهاء المهلة أو كتابة استعلام أحدث مع فحص err.name === "AbortError" بهدوء.

تذكّر كذلك أن طلب البيانات من نطاق خارجي يخضع لسياسة مشاركة الموارد عبر الأصول (CORS) في المتصفح؛ إذ يجب أن يرسل الخادم البعيد نفسه حقل الرأس Access-Control-Allow-Origin للسماح لموقعك بقراءة الاستجابة.

الصف 2 كود برمجي
JavaScript
const ctrl = new AbortController();
const out = document.getElementById('ab-out');
const blob = new Blob(['{"status":"Ready"}']);
const timer = setTimeout(() => ctrl.abort(), 2000);
fetch(URL.createObjectURL(blob), { signal: ctrl.signal })
  .then((r) => r.json())
  .then((d) => { out.textContent = 'Fetched: ' + d.status; })
  .catch((e) => { out.textContent = 'Canceled: ' + e.name; })
  .finally(() => clearTimeout(timer));
الصف 3 ملاحظة هامة
الصف 4 ملاحظة هامة
الصف 5 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس جلب البيانات على مرحلتين عبر fetch()، وفحص نجاح الاستجابة عبر response.ok، وقراءة الجسم بـ res.json() وres.text()، وإرسال طلبات POST مع رؤوس الرسالة، وإلغاء الطلبات المتأخرة عبر AbortController وفهم سياسة CORS. الخطوة التالية: انتقل إلى درس «واجهة تحديد الموقع الجغرافي Geolocation API» لقراءة الإحداثيات باحترام كامل لخصوصية المستخدم.