اتصال HTTP عبر النطاقات: معضلة AJAX
XMLHttpRequest، العمود الفقري لتقنية AJAX، يفرض سياسة عبر النطاقات التي تعيق الاتصال المباشر التواصل مع الخوادم الخارجية. تؤدي محاولة استرداد البيانات من مجال مختلف باستخدام طلب AJAX إلى حدوث خطأ في إمكانية الوصول.
للتغلب على هذا القيد، تم تقديم JSONP. ومع ذلك، فإنه غالبًا ما يقدم أخطاء نحوية بسبب عدم التطابق بين تنسيق JSON المتوقع والبيانات المستلمة.
الحل الوحيد القابل للتطبيق: وكيل من جانب الخادم
الحل الأكثر عملية هو استخدام لغة من جانب الخادم كوكيل. تسمح لك هذه التقنية بالوصول إلى البيانات عبر النطاقات بشكل غير مباشر من خلال برنامج نصي وسيط يعمل على الخادم الخاص بك.
التنفيذ باستخدام jQuery وPHP
لتنفيذ البيانات عبر النطاقات الاسترجاع باستخدام jQuery و PHP:
jQuery Portion:
$.ajax({ عنوان URL: "proxy.php"، النوع: "منشور"، بيانات: { العنوان: "http://www.google.com" }, النجاح: الوظيفة (الاستجابة) { // تحتوي الاستجابة الآن على HTML الكامل لموقع google.com } });$.ajax({ url: 'proxy.php', type: 'POST', data: { address: 'http://www.google.com' }, success: function(response) { // response now contains full HTML of google.com } });
وكيل PHP (proxy.php):
echo file_get_contents($_POST['address']);$.ajax({ url: 'proxy.php', type: 'POST', data: { address: 'http://www.google.com' }, success: function(response) { // response now contains full HTML of google.com } });باستخدام هذا بهذا النهج، يمكنك الوصول إلى البيانات وعرضها بشكل فعال من النطاقات الأجنبية مع الالتزام بسياسة AJAX عبر النطاقات. انتبه إلى أي قيود أو مشكلات محتملة تتعلق بالبيانات المسروقة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3