مرورگر طبق سیاست «هم‌مبدأ» اجازه نمی‌دهد صفحه‌ای از یک دامنه به پاسخ API روی دامنهٔ دیگر دسترسی داشته باشد، مگر اینکه آن سرور اجازه بدهد. این اجازه همان CORS است.

چطور کار می‌کند؟

  • سرور با هدر Access-Control-Allow-Origin مشخص می‌کند کدام مبدأها مجازند.
  • برای درخواست‌های غیرساده (مثل PUT یا هدر سفارشی) مرورگر اول یک درخواست OPTIONS (preflight) می‌فرستد.
  • اگر پاسخ اجازه ندهد، مرورگر نتیجه را مسدود می‌کند؛ مشکل از مرورگر نیست، از تنظیم سرور است.
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type

از * برای APIهای دارای کوکی یا اطلاعات حساس استفاده نکنید و فقط مبدأهای لازم را مجاز کنید.