显示检索到的JSON内容时出错

时间:2010-11-28 15:31:22

标签: php javascript jquery html json

继续问我的问题here,我创建了一个测试应用程序来检查使用jquery的json解析。 它似乎没有用。我可以在点击功能中附加数据。但是从该URL获取数据并解析似乎失败了。有人可以提供一些有用的提示吗?

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>");
    $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?callback=function&alt=jsonc&v=2", function(data) {
        var dataContainer = $("#data ul");
        $.each(data.data.items, function(i, val) {
         $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>");
if (typeof(val.player) !== 'undefined' && typeof(val.title) !== 'undefined') {
dataContainer.append("<li><a href = "+val.player.default+" target = '_blank'>"+val.title+"</a></li>");
        }
        });
        });


  });
});
</script>
</head>

<body>
<h2>Header</h2>
<p>Paragrapgh</p>
<p>Paragraph.</p>
<button>Click me</button>
</body>
</html>

TIA, Praveen S

2 个答案:

答案 0 :(得分:2)

提供回调以便您可以绕过相同的原始策略。因此,检索到的JSON数据包含在函数名称中,无法直接解析。使用jquery执行此操作的详细信息为here。请参考下面给出的例子

<script>
 $.ajax({
         url:'http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=jsonc&v=2&callback=?',
         dataType: "jsonp",
         timeout: 5000,
         success: function(data){
                    alert(data.apiVersion);
                    //add your JSON parsing code here
                  }

 });

</script>

请找到工作示例here

答案 1 :(得分:0)

如果没有callback=function,网址不会像您想要的那样返回json 使用回调它使用一个名为jsonp的方法: http://ajaxian.com/archives/jsonp-json-with-padding