getJSON на FCC обратного вызова данных не работает? - PullRequest
1 голос
/ 21 сентября 2011

Я получаю успешный ответ, но не до конца понимаю, как перебрать данные, которые я получаю. Я добавил предупреждение в обратном вызове успеха, но это не было вызвано. Вот разметка и скрипт:

<input type="text" name="searchValue" id="searchValue"/>
<input type="button" name="btnGetLicenes" value="Get Licenses" id="btnGetLicenses"/>
<div id="Licenses"></div>
<script>

    $.getJSON("http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=Verizon Wireless&format=jsonp&callback=?",
        function (data) {
            $.each(data.License, function (i, lic) {
                $('#Licenses').append('<p>' + lic.licName + '</p>');          
                alert("hello"); //This is not called.

            });
        });

</script>

В приведенном выше сценарии я не использую текстовое поле поиска, я просто жестко закодировал Verizon Wireless для тестирования.

1 Ответ

2 голосов
/ 21 сентября 2011

У вас есть промежуточный data.Licenses.License узел, представляющий коллекцию, через которую вы можете перейти:

$.getJSON('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=Verizon+Wireless&format=jsonp&jsonCallback=?',
    function (data) {
        $.each(data.Licenses.License, function (i, lic) {
            $('#Licenses').append('<p>' + lic.licName + '</p>');          
        });
    }
);

Также $alert - это не та функция, которую можно ожидать от вызова. Может быть, вы имели в виду alert.

Также обратите внимание, что в соответствии с документацией параметр, который позволяет установить имя обратного вызова JSONP, равен jsonCallback, а не callback, как в вашем примере.

Также не забудьте URL кодировать параметры строки запроса, иначе вы можете получить неожиданное / неправильное поведение с сервера: searchValue=Verizon Wireless должно быть searchValue=Verizon+Wireless.

И, наконец, вот живая демонстрация , чтобы увидеть это в действии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...