无法使用jQuery从跨域JSON服务URL检索数据

时间:2012-04-18 05:18:39

标签: jquery ajax json jsonp

  

可能重复:
  JQuery won't get json?

<script type="text/javascript">
    var url = "http://local.yahooapis.com/LocalSearchService/V3/localSearch?appid=YahooDemo&query=pizza&zip=10504&results=2&output=json&callback=?";
    jQuery.getJSON(url, function (data) {
        alert(data);
    });
    var url1 = "http://services.odata.org/OData/OData.svc/Products?$format=json&callback=?";
    jQuery.getJSON(url1, function (data) {
        alert(data);
    });
</script>

通过运行上面的代码,我可以看到第一个警报但不是第二个。有人能让我知道这里的错误吗?我收到的错误是FF&amp;中的“无效标签”。预期的在IE 8中

1 个答案:

答案 0 :(得分:5)

任务实际上是使用JSONP,这是jQuery uses in the secret在检测到名为callback的网址中的参数时的http://services.odata.org/OData/OData.svc/Products?$format=json&callback=xyzaxa

转到网址{{3}}并注意内容不包含字符串xyzaxa,这意味着永远不会从服务中调用回调。

您使用的是错误的网址,或者odata doesent支持JSONP