JQuery вызывает XML веб-сервис - PullRequest
2 голосов
/ 12 января 2012

Я пытаюсь попрактиковаться в jquery с веб-сервисами и звонить в открытый сервис xml из аэропортов США.

URL веб-сервиса http://services.faa.gov/airport/status/IAD?format=application/xml

и мой код запроса, как показано ниже, но при загрузке страницы отображается пустой экран :( может кто-нибудь мне помочь, пожалуйста. Я искал в Интернете и не мог выяснить.

<html>
<head>
    <script type="text/javascript" src="assets/jquery.js"></script>
    <title>Aviation</title>
    <script type="text/javascript">
        $(document).ready(function () {
        $.ajax({
        type: "GET",
        url: "http://services.faa.gov/airport/status/IAD?format=application/xml",
        dataType: "xml",
        success: xmlParser
        });
    });

    function xmlParser(xml) {

        $('#airport').fadeOut();
        $(xml).find("AirportStatus").each(function () {
        $("#details").append($(this).find("ICAO").text() + "</br>"+ $(this).find("State").text());
        //$(".book").fadeIn(1000);
        });
    }
    </script>
</head>
<body>
    <p id="airport">Loading...</p>
    <p id="details"></p>
</body>
</html>

Спасибо за ваше время заранее.

Ответы [ 3 ]

3 голосов
/ 12 января 2012

ограничено CORS Вы не можете получить доступ к данным по всему домену, более того, xml, похоже, имеет некоторые проблемы с форматированием, попробуйте формат json вместе с dataType:'jsonp'

$.ajax({
        type: "GET",
        url: "http://services.faa.gov/airport/status/IAD?format=json",
        dataType: "jsonp",
    success: function(data){
        alert("asd");
    console.log(data);
    }
        });

http://jsfiddle.net/WxMXR/7/

1 голос
/ 12 января 2012

Ошибка при выполнении JS в http://jsfiddle.net/QYQ4V/2/

Поскольку вам запрещено использовать вызовы ajax для извлечения данных из других доменов ... (кроме случаев, когда используются типы данных JSONP или script ..) JSONP: http://en.wikipedia.org/wiki/JSONP

Это означает, что вы можете использовать другой язык (python / ruby ​​/ java) для получения данных и использовать jquery для извлечения данных в том же домене, а не использовать XHR ($. Ajax) в jQuery.

0 голосов
/ 12 января 2012

FYI

Серверная сторона возвращает xml и HTTP-заголовок ответа 'Content-Type' = 'application / xml', который должен быть 'text / xml',

и низкий уровень XMLHttpRequest с использованием 'application / xml', чтобы возникали конфликты.

...