继续问我的问题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
答案 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