معاذ الخلف M.Alkhalaf
معاذ الخلف M.Alkhalaf

@muath2

5 تغريدة 20 قراءة Sep 08, 2020
كثير من المطورين يواجه خطأ غريب أثناء تطوير موقعه ويظهر الخطأ في البروازر مثل الصورة وهو مخالفة ال CORS Policy. غالب المطورين تجده مو فاهم وش القصة ويحوس كثير فيها. خلوني أوضح ايش المشكلة، بس قبل لازم نفهم خاصية أمنية مهمة جدا في المتصفح وهي سياسة المصدر الأوحد same-origin policy
تخيل انك مستخدم عادي و دخلت صفحة البنك الخاص فيك وبعد كذا - بدون ما تسكر صفحة البنك - فتحت صفحة ثانية لموقع ثاني. ** بدون الخاصية الأمنية ** اللي ذكرناها، يقدر الموقع الثاني ينزل كود جافاسكربت يشتغل على جهازك ويتواصل مع البنك باسمك لانك مسجل دخول ويسوي اللي يبغى (مثلا يحول فلوس).
هذا الشي طبعا ما يصير بسبب وجود سياسة المصدر الأوحد أو SOP. حتى نكون دقيقين أكثر: هذي السياسة تمنع أي طلب XHR من الجافاسكربت انه يتواصل بنجاح مع موقع آخر إلا إذا الموقع الآخر يسمح بالشيء هذا. الاشكالية وين؟ غالبا تكون في معرفة كيف المتصفح يقرر "من هو الموقع الآخر" (انظر الجدول)
هذا الخطأ بدأ يحدث كثيرا للمبرمجين مع كثرة استخدام الجافاسكربت ومكتباتها في البراوزر في تطبيقات الويب سواء باستخدام React JS أو Angular JS أو jQuery أو غيرها. سواء لما تستخدم اسم نطاق فرعي subdomain أو تستدعي API من مواقع أخرى فإن هذا قد يؤدي لهذه المشكلة. الحل؟
الحل لابد من أن يتم من الويب سيرفر (رغم ان الخطأ يظهر في كود الجافاسكربت في المتصفح 😅) في الدومين المستهدف بالطلب من كود الجافاسكربت وذلك عبر تعديل اعدادات الويب سيرفر وخلك حذر في هذا التعديل. للمزيد #Cross-origin_network_access" target="_blank" rel="noopener" onclick="event.stopPropagation()">developer.mozilla.org

جاري تحميل الاقتراحات...