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