【问题标题】:Error: MIME type ('application/json') is not executable, and strict MIME type checking is enabled with YQL statements?错误:MIME 类型 ('application/json') 不可执行,并且使用 YQL 语句启用了严格的 MIME 类型检查?
【发布时间】:2015-11-27 17:01:50
【问题描述】:

我试图运行一个关于 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 您希望使用脚本元素发出 JSONP 请求,而不是使用 XMLHttpRequest 请求 JSON。 JSONP 不是 JSON。它是一个 JavaScript 程序。

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

【问题讨论】:

    标签: javascript jquery json yql


    【解决方案1】:

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

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

    【讨论】:

    • 所以,我应该删除callback=?
    • 完全删除 callback= 也将无法提供回调名称,因此 YQL 将继续传递 JSON 而不是 JSONP。如果你想要 JSONP,那么你必须给它一个回调名称。如果你想要 JSON,那么你不能使用 &lt;script&gt; 元素的 src 加载它。
    • 但它说的是format=json 而不是format=jsonp 那么我如何请求JSONP。对不起,我很困惑。
    • 相同的代码在 YQL 控制台中是如何工作的?雅虎教程页面上有这个声明Notice that the YQL statement has been URL-encoded and the format parameter specifies that the response be in JSON.你能提供一个代码示例吗?
    • 1.您正在请求一个 URL。 2. 您正在使用&lt;script&gt; 元素的src 执行此操作。 3. JSON 是一种数据格式,不是程序,所以不能将&lt;script&gt;src 设置为指向JSON。 4. JSONP 是一个 JavaScript 程序,它只调用一个函数并在参数中传递一些数据。 5. 该函数的名称通常使用callback 查询字符串值指定。 6. 由于您没有指定一个,因此您将返回 JSON,它不是 JavaScript 程序,因为 &lt;script&gt; 需要一个而出错。 7. 如果你指定一个回调,你会得到 JS。
    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2017-12-17
    • 1970-01-01
    • 2020-06-30
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多