إصلاح · سوبابيس وقواعد البيانات
خطأ CORS عندما يستدعي موقعي Supabase أو دالة Edge
تعطّل عملك
ما قد تراه
- تقول وحدة التحكم blocked by CORS policy
- الطلب يعمل في أداة مثل Postman ولا يعمل في المتصفح
السبب الأرجح
يسأل المتصفح الخادم أولاً هل يُسمح لعنوان موقعك باستدعائه؛ فأجاب الخادم دون ترويسات السماح، أو أن الخطأ الحقيقي مختبئ خلف رسالة CORS.
افحص أولاً (نحو دقيقتين)
- افتح تبويب الشبكة في المتصفح: هل يوجد طلب OPTIONS أولاً وما حالته؟
- افحص الحالة الحقيقية للطلب الثاني: فالـ 401 أو 404 أو 500 يظهر غالباً كأنه CORS.
أمر الإصلاح
ما تكتبه هنا لا يغادر متصفحك. البحث يعمل داخل هذه الصفحة ولا يُرسل شيء إلى خادم ولا إلى ذكاء اصطناعي.
يبقى في هذا المتصفح وعلى هذا الجهاز فقط. تُحذف المفاتيح وكلمات المرور قبل أي حفظ.
لغة الأمر
الصقه في Claude أو ChatGPT أو Gemini أو Cursor ثم اتبع ما يقوله.
بعد أن جرّبته، هل نجح؟
الخطوات
- اعثر على العنوان الذي يستدعيه المتصفح وما رد OPTIONS.
- لواجهة بيانات Supabase نفسها تحقق أن عنوان المشروع والمفاتيح صحيحة (فالعنوان الخاطئ يبدو كأنه CORS).
- لدالة Edge أو مسار خادمي خاص بي أضف معالج OPTIONS وترويسات السماح (المصدر والترويسات والطرق) إلى كل استجابة بما فيها الأخطاء.
- اسمح بعناوين موقعي فقط وليس بنجمة للجميع.
لا تفعل هذا
- لا تضبط المصدر المسموح على * لدوال تستخدم الكوكيز أو بيانات خاصة.
- لا تثبّت إضافة متصفح توقف CORS كحل.