错误:MIME类型('application / json')不可执行,并且使用YQL语句启用了严格的MIME类型检查?

时间:2015-11-27 17:01:51

标签: javascript jquery json yql

我试图运行一个关于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的代码。我是一个完整的新生儿,所以我可能犯了一个愚蠢的错误。上面的代码有什么问题?感谢。

1 个答案:

答案 0 :(得分:0)

第3行的<script>元素正在请求JSONP。它只是硬编码而不是添加JS(这对于JSONP来说是正常的)。

YQL正在提供JSON,因为您已经说过callback=然后停止而没有实际提供回调函数名称。