تخطَّ إلى المحتوى

OPTIONS

طريقة OPTIONS OPTIONS

OPTIONS تسأل الخادم عن خيارات التواصل المتاحة لمورد معيّن — الطرق المسموحة، وهي أساس آلية CORS preflight.

OPTIONS تطلب معلومات عن قدرات المورد أو الخادم دون تنفيذ أي عملية فعلية عليه — غالبًا يعيد الخادم ترويسة Allow تسرد الطرق المدعومة (GET, POST, PUT...). هي آمنة وعديمة الأثر التراكمي حسب RFC 9110.

أشهر استخدام عملي لها هو طلبات preflight في CORS: قبل أن يرسل المتصفح طلبًا "غير بسيط" (مثل PUT بترويسة مخصَّصة) من نطاق مختلف، يرسل تلقائيًا OPTIONS للتأكد أن الخادم يسمح بذلك عبر ترويسات Access-Control-Allow-*.

الصياغة

OPTIONS /resource

📄 مثال

OPTIONS /api/articles/42 HTTP/1.1

// الاستجابة
HTTP/1.1 204 No Content
Allow: GET, PUT, PATCH, DELETE, OPTIONS

أهم النقاط

العنصرالوظيفة
آمنة وعديمة الأثر التراكميلا تُنفّذ عملية فعلية على المورد
ترويسة Allowتسرد الطرق التي يدعمها المورد
أساس CORS preflightالمتصفح يرسلها تلقائيًا قبل طلبات "غير بسيطة" عابرة للنطاقات

💡 نصائح عملية

  • لا تحتاج غالبًا لكتابة معالج OPTIONS يدويًا — مكتبات CORS في Express (مثل cors) تتكفّل بالرد عليها تلقائيًا
  • استخدمها لبناء توثيق ذاتي بسيط: اطلب OPTIONS على أي مسار لمعرفة طرقه المدعومة

⚠️ أخطاء شائعة

  • حجب طلبات OPTIONS خلف مصادقة إجبارية — يكسر آلية CORS preflight ويمنع أي طلب عابر للنطاقات من العمل
  • الخلط بينها وبين توثيق OpenAPI الكامل — OPTIONS تعطي الطرق المسموحة فقط لا شكل البيانات

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار REST-API الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs