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

Error: MIME type ('application/json') is not executable, and strict MIME type checking is enabled with YQL statements?

本文关键字:MIME 启用 语句 YQL 并且 类型 application 错误 json 可执行      更新时间:2023-09-26

我试图从Yahoo运行一个关于YQL的示例。这是我应该使用的代码:

<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您希望使用脚本元素来请求JSONP,而不是使用XMLHttpRequest来请求JSON。JSONP不是JSON。这是一个JavaScript程序。

我的问题是我正在使用JavaScript,在上面的脚本中找不到我期望的JSONP的代码。我是一个完全的新手,所以我可能犯了一个愚蠢的错误。上面的代码出了什么问题?谢谢

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

YQL正在传递JSON,因为您已经说过callback=,然后在没有实际提供回调函数名的情况下停止了。