I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

إزاي تحل مشكلة الـ CORS Error في لارافيل (Laravel) ببساطة؟

إزاي تحل مشكلة الـ CORS Error في لارافيل (Laravel) ببساطة؟ مين فينا كمبرمج ويب ممرش باللحظة السودة دي؟ بتبني الـ API بتاعك زي الفل، وتروح تنده عليه من الـ Front

إزاي تحل مشكلة الـ CORS Error في لارافيل (Laravel) ببساطة؟
Reading Count: 6

إزاي تحل مشكلة الـ CORS Error في لارافيل (Laravel) ببساطة؟

مين فينا كمبرمج ويب ممرش باللحظة السودة دي؟ بتبني الـ API بتاعك زي الفل، وتروح تنده عليه من الـ Frontend بتاعك (React أو Vue مثلاً)، وفجأة تلاقي الكونسول (Console) منور أحمر بكلمة CORS Error. بتبدأ تشك في نفسك وفي الكود وفي المتصفح، وبتقول هو أنا عملت إيه غلط؟ الحقيقة إنك معملتش حاجة غلط، ده مجرد "سياسة أمان" المتصفح بيطبقها عشان يحمي المستخدم.

يعني إيه أصلاً CORS؟

اختصار الـ Cross-Origin Resource Sharing (مشاركة الموارد عبر مصادر مختلفة) هي آلية أمان بيستخدمها المتصفح عشان يمنع المواقع من إنها تبعت طلبات (Requests) لموقع تاني إلا لو الموقع التاني ده "عطى إذن صريح".

تخيل إن الـ API بتاعك هو "قلعة"، والـ Frontend بتاعك هو "زائر". المتصفح هنا هو "حارس البوابة". لو الزائر ده جاي من عنوان (Domain) مختلف عن عنوان القلعة، الحارس بيقوله: "استنى يا ريس، معاك تصريح بالدخول؟". التصريح ده هو الـ CORS Headers اللي بنبعتها من الـ Backend.

ليه المشكلة دي بتحصل أصلاً؟

المتصفحات بتطبق حاجة اسمها Same-Origin Policy. دي بتمنع الـ Scripts اللي شغالة في صفحة ويب إنها تتواصل مع سيرفر تاني إلا لو السيرفر ده بيسمح بده بوضوح من خلال الهيدرز (Headers). ده بيحمي المستخدم إن موقع خبيث يسرق بياناته من موقع تاني هو عامل عليه Log in.

حل المشكلة في لارافيل (Laravel) خطوة بخطوة

لحسن الحظ، إطار العمل Laravel موفر لنا مكتبة ممتازة بتيجي مدمجة معاه عشان نحل المشكلة دي في ثواني. الخطوات دي هي اللي هتنقذ يومك:

1. التأكد من وجود ملف الإعدادات

في نسخ لارافيل الحديثة، الملف موجود تلقائياً في config/cors.php. لو مش لاقيه، ممكن تنشره باستخدام الأمر ده في الـ Terminal:

php artisan config:publish cors

2. ضبط إعدادات ملف cors.php

افتح الملف ده وركز في النقط دي:

  • paths: هنا بتحدد الـ API اللي محتاج تفتح له الصلاحية. غالباً بنخليها ['api/*', 'sanctum/csrf-cookie'].
  • allowed_origins: ده أهم سطر. هنا بتكتب الـ Domain بتاع الـ Frontend بتاعك، زي ['http://localhost:3000']. لو عايز تفتحها للكل (مش مستحسن في الـ Production)، ممكن تحط ['*'].
  • allowed_methods: بتحدد الطلبات المسموح بيها زي ['GET', 'POST', 'PUT', 'DELETE'].
  • allowed_headers: هنا بتسمح بالهيدرز اللي الـ Frontend هيبعتها، زي ['Content-Type', 'Authorization'].

3. مسح الكاش (Cache)

بعد ما تعدل ملف الـ Config، لازم تمسح الكاش عشان الإعدادات الجديدة تسمع في السيرفر:

php artisan config:clear

نصيحة من أخ لمبرمج

يا صاحبي، الـ CORS مش عدوك، ده حارس أمن بيحميك ويحمي المستخدمين بتوعك. بلاش تستسهل وتحط '*' في كل حاجة وتفتح السيرفر بتاعك لأي حد في الـ Production. حدد بالظبط إيه اللي محتاجه، وافتح النطاقات (Domains) اللي بتوثق فيها بس.

اتعلم تقرأ الـ Network Tab في الـ Chrome DevTools كويس، لأنها بتعرفك بالظبط إيه الهيدر اللي ناقص أو إيه الـ Method اللي مرفوضة. الاستمرارية في التعلم هي اللي هتحولك من "مبتدئ بيخاف من الـ Errors" لـ "محترف بيحل المشاكل في دقايق". بالتوفيق في الكود بتاعك!


Share

Related posts

Apr 24, 2026 • 1 min read
Reading Count: 196
دليلك الشامل لكتابة اختبارات الوحدات (Unit Testing) في PHP و Laravel باحترافية

دليلك الشامل لكتابة اختبارات الوحدات (Unit Testing) في PHP و Laravel باحترافية يا مساء الفل على كل ا...

Apr 24, 2026 • 1 min read
Reading Count: 204
أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions

أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions هل تعبت من ال...

Apr 24, 2026 • 1 min read
Reading Count: 175
ازاي تبني تطبيقات Real-time احترافية باستخدام Laravel Reverb

ازاي تبني تطبيقات Real-time احترافية باستخدام Laravel Reverb لو كنت مبرمج Laravel، أكيد جالك وقت واح...