ما هو CORS؟

يحدد CORS (مشاركة الموارد عبر النطاقات) كيفية إبلاغ الخادم للمتصفحات بمواقع الويب الأخرى التي يُسمح لها بقراءة استجاباته. افتراضيًا، يمكن لـ JavaScript على https://app.example.com إرسال طلب إلى https://api.example.com، لكن المتصفح يحجب الاستجابة ما لم تُرجع API ترويسة Access-Control-Allow-Origin تتضمن مصدر الصفحة، أو القيمة *.

في كل ما يتجاوز طلب GET عاديًا أو طلب POST بسيطًا باستخدام نموذج، مثل PUT أو DELETE أو طلب يتضمن جسم JSON وترويسة Authorization، يطلب المتصفح الإذن أولًا عبر طلب تمهيدي: طلب OPTIONS يحدد الطريقة والترويسات التي يريد استخدامها. ولا يُرسل الطلب الفعلي إلا إذا سمحت استجابة الخادم بذلك.

وصف الأداة

أدخل URL الذي تستدعيه صفحتك، ومصدر الصفحة، والطريقة، وأي ترويسات طلب مخصصة، ثم اضغط على «فحص CORS». يرسل خادمنا الطلبات نفسها التي يرسلها المتصفح، ويطبق قواعد المتصفح على الاستجابات:

  • الطلب التمهيدي (OPTIONS) مع Access-Control-Request-Method وAccess-Control-Request-Headers
  • طلب GET مع ترويسة Origin لقراءة ترويسات CORS في استجابة عادية

تُظهر نتائج الفحص القواعد التي اجتازت الاختبار أو أخفقت فيه، ويسرد الجدول كل ترويسات CORS الواردة في الاستجابتين. لا تُرسل الطريقة التي تختارها مطلقًا، لذا فإن فحص نقطة نهاية DELETE لا يحذف شيئًا.

وتوضح الأداة أيضًا ما إذا كانت الطلبات المرفقة بـ cookies ستعمل. تتطلب هذه الطلبات تحديد المصدر بدقة بدلًا من *، وإرسال Access-Control-Allow-Credentials: true.

يمكن لمساعدات الذكاء الاصطناعي المتصلة بخادم MCP الخاص بـ Rapid Tool Set إجراء الفحص نفسه باستخدام cors_checker.

نصائح

  • تصدر أخطاء CORS من المتصفح، لا من الخادم. قد ينجح طلب باستخدام curl أو Postman، ومع ذلك يحظره المتصفح، لأن هذه الأدوات لا تطبق قواعد CORS.
  • إذا كانت استجابة الطلب التمهيدي هي 401 أو 404، فهذا يعني أن الخادم يتعامل مع OPTIONS كأنه طلب عادي. اسمح بمرور الطلبات التمهيدية قبل إجراء عمليات التحقق من المصادقة.
  • عندما يحدد الخادم المصدر المسموح به لكل طلب، ينبغي له أيضًا إرسال Vary: Origin، وإلا فقد يرسل CDN استجابة أحد المواقع إلى موقع آخر.