为什么这个JQuery JSON调用失败了?

时间:2011-10-21 19:54:16

标签: jquery json get

我正在尝试对返回JSON文件的API进行简单调用。我已经确认我使用的URL工作并返回有效的JSON。当我尝试使用此JQuery脚本获取JSON时,不会触发警报,这使得我认为代码的GET部分出了问题。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
    $(document).ready(function() {
        $.getJSON("http://open.nysenate.gov/legislation/2.0/search.json?term=stricken:true%20AND%20year:2009&callback=?", function(json) {
            alert("test");
        });
    });
 </script>
</head>
<body>
</body>
</html>

4 个答案:

答案 0 :(得分:1)

要解决同源策略,您可以编写一个简单的后端脚本(PHP,perl,Python等),用于擦除所需的URL并将结果输出到您的脚本。然后,您只需将AJAX调用指向本地脚本而不是远程脚本。

答案 1 :(得分:0)

它不支持JSONP,请尝试yourself

违反了Same Origin Policy

答案 2 :(得分:0)

http://en.wikipedia.org/wiki/Same_origin_policy - 您无法在当前域之外进行ajax调用。正如其他答案所建议的那样,解决这个问题的一种方法是使用JSONP。

答案 3 :(得分:0)

我假设返回的JSON对象格式不正确,因为这会返回错误

$(document).ready(function() {
    $.getJSON("http://open.nysenate.gov/legislation/2.0/search.json?term=stricken:true%20AND%20year:2009&callback=?",function(json){
        alert("dsf");
    })
  .error(function() { alert("error"); });

});