我试图运行一个关于YQL from Yahoo的例子。这是我应该使用的代码:
<body>
<div id='results'></div>
<script src='https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22&format=json&diagnostics=true&callback='></script>
</body>
<script type='text/javascript'>
function top_stories(o){
var items = o.query.results.item;
var output = '';
var no_items=items.length;
for(var i=0;i<no_items;i++){
var title = items[i].title;
var link = items[i].link;
var desc = items[i].description;
output += "<h3><a href='" + link + "'>"+title+"</a></h3>" + desc + "<hr/>";
}
document.getElementById('results').innerHTML = output;
}
</script>
我已经阅读了同样错误的其他问题,其中大多数都给出了与此类似的答案
通过添加回调参数,您告诉jQuery您要使用脚本元素而不是使用XMLHttpRequest的JSON请求来请求JSONP。 JSONP不是JSON。这是一个JavaScript程序。
我的问题是我正在使用JavaScript而且我无法在上面的脚本中找到我期待JSONP的代码。我是一个完整的新生儿,所以我可能犯了一个愚蠢的错误。上面的代码有什么问题?感谢。
答案 0 :(得分:0)
第3行的<script>
元素正在请求JSONP。它只是硬编码而不是添加JS(这对于JSONP来说是正常的)。
YQL正在提供JSON,因为您已经说过callback=
然后停止而没有实际提供回调函数名称。