为了继续我问here的问题,我创建了一个测试应用程序来使用jquery检查json解析。它似乎不起作用。我可以在click函数中追加数据。然而,从该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
发布于 2010-11-28 23:46:32
提供回调是为了让您可以绕过同源策略。因此,检索到的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。
发布于 2010-11-28 23:39:57
url不会像您希望的那样返回json,如果没有带有回调的callback=function
,它将使用名为jsonp:http://ajaxian.com/archives/jsonp-json-with-padding的方法。
https://stackoverflow.com/questions/4297503
复制相似问题