Chrome عمل بشكل صحيح. Firefox كان فارغاً.

رأيت خطأً برمجياً غريباً. فتحت نفس الصفحة في متصفحين جنباً إلى جنب.

في Chrome، كان كل شيء يعمل. رأيت الصور، والأزرار، والبيانات. في Firefox، لم أرَ شيئاً. رأيت بطاقات فارغة ورسالة تقول "0 results found."

كان نفس الرابط (URL). كان نفس الإصدار (build). كانت نفس الجهاز.

كان السبب خطأً برمجياً يكاد يكون من المستحيل اكتشافه أثناء عملية التطوير. كان المتصفح يحظر استدعاءات الـ API الخاصة بي. لقد كنت أطور باستخدام المتصفح الوحيد الذي لم يحظرها.

المشكلة:

لم يتوقف الكود عن العمل (crash). ولم يظهر خطأ أحمر في وحدة التحكم (console). ببساطة، لم تُرجع عملية الـ fetch أي شيء. عندها قام الكود الخاص بي بعرض "حالة فارغة" (empty state) كخيار بديل كما هو مبرمج. بالنسبة للمراقب العادي، بدت الصفحة طبيعية، لكنها بدت فارغة فقط.

كان هذا الخطأ غير مرئي لسببين:

كيف قمت بإصلاحه:

استخدمت وكيلًا عكسيًا (reverse proxy) لنقل الطلب إلى الجانب الموثوق.

بدلاً من: mysite.com -> xxxx.supabase.co (طرف ثالث / محظور)

انتقلت إلى: mysite.com -> mysite.com/sb-api (طرف أول / موثوق)

من خلال توجيه الـ API عبر نطاقي الخاص، يعتقد المتصفح أن الطلب جزء من الموقع نفسه. لم يعد Firefox يراه كأداة تتبع.

ثلاثة أشياء يجب تذكرها إذا استخدمت هذه الطريقة:

الدرس المستفاد: توقف عن افتراض أنه "إذا كان يعمل في Chrome، فهو يعمل".

اختبر موقعك في Firefox مع إعدادات خصوصية صارمة وأداة حظر إعلانات. تلك هي نقطة الضعف الحقيقية لديك.

المصدر: https://dev.to/henry_dan_81513dd35a2f540/chrome-showed-the-data-firefox-showed-nothing-the-api-was-being-blocked-4mpn