关于FCC数据回调的getJSON无法正常工作?

时间:2011-09-20 20:52:51

标签: jquery json asp.net-mvc-3

我收到了成功的回复,但我并不完全了解如何循环访问我得到的数据。我在成功回调中发出警报,但没有调用。这是标记和脚本:

<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 个答案:

答案 0 :(得分:2)

您有一个中间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

另请注意,根据documentation,允许您设置JSONP回调名称的参数为jsonCallback,而不是示例中的callback

另外,不要忘记对您的查询字符串参数进行URL编码,否则您可能会从服务器获得意外/错误的行为:searchValue=Verizon Wireless应为searchValue=Verizon+Wireless

最后这里有一个live demo来看看这个。