Я пытаюсь загрузить данные XML с помощью метода get jQuery. Фид XML расположен по следующему URL: http://webservices.nextbus.com/service/publicXMLFeed?command=routeList&a=mbta
Когда я запускаю следующий код в браузере, я получаю сообщение об ошибке:
XMLHttpRequest не может загрузить http://webservices.nextbus.com/service/publicXMLFeed?command=routeList&a=mbta. Происхождение http://173.203.89.156 не разрешено Access-Control-Allow-Origin.
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <title>Bus Map</title> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0px; padding: 0px } #map_canvas { height: 100% } </style> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"> </script> <script type="text/javascript" src=" https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"> </script> <script type="text/javascript"> $(document).ready(function() { var myLatlng = new google.maps.LatLng(42.3966499, -71.12188); var myOptions = { zoom: 14, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); $.get('http://webservices.nextbus.com/service/publicXMLFeed?command=routeList&a=mbta', function(stops) { alert(stops[0]); }) }); </script> </head> <body> <div id="map_canvas" style="width: 100%; height: 100%"></div> </body> </html>
Этот домен категорически блокирует все междоменные запросы XMLHTTP или существует возможность обойти эту ошибку?
браузер блокирует кросс-доменные xhrs.Существует нечто, называемое Same-Origin-Policy , которому вы должны следовать для xhrs, или вам нужно использовать альтернативу, такую как прокси на стороне сервера или jsonp, если это предусмотрено приложением.
Если вам нужно обойти проблему с одним доменом (как это делают многие API), изучите JSONP.Я не очень знаком с jQuery, но, похоже, он делает вызовы JSONP с getJSON , если в URL есть параметр обратного вызова.