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

Configuring CORS Headers for APIs إعداد مشاركة الموارد العابرة للمجالات CORS

ابنِ نقاط نهاية JSON احترافية في PHP 8 باستخدام رؤوس نوع المحتوى وقراءة المجرى php://input ودالة http_response_code.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

عندما تعمل الواجهة الأمامية على نطاق مختلف (مثل https://app.example.com) عن نطاق خادم PHP API‏ (https://api.example.com)، يفرض المتصفح سياسة مشاركة الموارد العابرة للمجالات (CORS).

  • أرسل الرأس Access-Control-Allow-Origin: https://app.example.com، وتجنب استخدام النجمة * في المسارات التي تتطلب مصادقة.
  • ترسل المتصفحات طلب استكشاف مسبق بطريقة OPTIONS (Preflight) قبل إرسال طلبات POST بصيغة JSON عبر النطاقات.
  • عندما تكون طريقة الطلب $_SERVER["REQUEST_METHOD"] === "OPTIONS"، أرسل رؤوس CORS المسموحة واضبط الرمز 204 وأنهِ التنفيذ فوراً.

يتيح فحص النطاق $origin مقابل قائمة بيضاء محددة السماح لعدة واجهات موثوقة دون فتح الـ API للمواقع المجهولة.

PHP
<?php
$allowedOrigins = ['https://app.closetag.com', 'http://localhost:3000'];
$origin = 'https://app.closetag.com';

if (in_array($origin, $allowedOrigins, true)) {
    echo "Access-Control-Allow-Origin: $origin\n";
    echo "Access-Control-Allow-Methods: GET, POST, OPTIONS\n";
    echo "Access-Control-Allow-Headers: Content-Type, Authorization\n";
}