خطأ في jQuery XML: "لا يوجد رأس 'Access-Control-Allow-Origin' موجود على المورد المطلوب"
عند محاولة عند الوصول إلى ملف XML موجود في مجال مختلف باستخدام jQuery، قد تواجه رسالة الخطأ: "لا يوجد رأس 'Access-Control-Allow-Origin' موجود على المورد المطلوب." يحدث هذا الخطأ بسبب سياسة المصدر نفسه، التي تقيد مكالمات AJAX عبر المصدر.
فهم سياسة المصدر نفسه
تفرض سياسة المصدر نفسه ذلك تسمح متصفحات الويب فقط بمكالمات AJAX للخدمات المستضافة على نفس المجال مثل صفحة HTML التي تقدم الطلب. في المثال الموضح، تتم استضافة صفحة HTML على http://run.jsbin.com/، بينما يوجد ملف XML على http://www.ecb.europa.eu/، مما يؤدي إلى طلب عبر الأصل تم حظره بواسطة المتصفح.
تمكين الطلبات عبر الأصل (CORS)
للسماح بالطلبات عبر الأصل، يجب أن يتضمن الخادم الرؤوس المناسبة في استجابته. أحد هذه الرؤوس هو رأس Access-Control-Allow-Origin، الذي يحدد الأصول المسموح لها بالوصول إلى المورد.في حالة ملف XML، لا يوفر خادم البنك المركزي الأوروبي CORS اللازمة رؤوس، وبالتالي رسالة الخطأ. لحل هذه المشكلة، سيلزم تكوين الخادم ليشمل الرؤوس التالية:Access-Control-Allow-Origin: http://run.jsbin.com طرق التحكم في الوصول إلى السماح: GET التحكم في الوصول - السماح بالرؤوس: نوع المحتوى
Access-Control-Allow-Origin: http://run.jsbin.com Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type
ملاحظة حول طلبات الاختبار المبدئي
في حالات معينة، مثل عند تقديم طلبات POST برؤوس غير بسيطة، قد يقوم المتصفح بإجراء طلب اختبار مبدئي OPTIONS لتحديد ما إذا كان الخادم يدعم CORS للطلب المحدد. إذا كانت استجابة الخادم لطلب الاختبار المبدئي هذا لا تحتوي على رؤوس CORS المناسبة، فسيفشل الطلب الرئيسي مع نفس رسالة الخطأ. وبالتالي، من المهم تضمين الرؤوس الضرورية في الاستجابات لكل من طلبات الاختبار المبدئي والطلبات الرئيسية.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3