我收到了成功的回复,但我并不完全了解如何循环访问我得到的数据。我在成功回调中发出警报,但没有调用。这是标记和脚本:
<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进行了硬编码测试。
答案 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来看看这个。