拒绝执行脚本,因为 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

Posted

技术标签:

【中文标题】拒绝执行脚本,因为 MIME 类型 (\'text/html\') 不可执行,并且启用了严格的 MIME 类型检查【英文标题】:Refused to execute script because MIME type ('text/html') is not executable, and strict MIME type checking is enabled拒绝执行脚本,因为 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查 【发布时间】:2017-10-02 09:45:37 【问题描述】:

我正在尝试从 forismatic api 获取数据((一些引号),但我没有得到任何响应。我在 jquery 中使用 ajax,但我在控制台中收到以下错误:

拒绝执行来自 'https://api.forismatic.com/api/1.0/?&callback=jQuery32105928698091179365_1493889543432&method=getQuote&format=jsonp&lang=en&jsonp=?&_=1493889543433' 的脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查。

我知道这个问题已经被问过了,但我没有得到我应该做什么,我尝试了一切,但仍然会出现这个错误。我也尝试过 CORS,但我认为我做错了什么,因为我对 jquery 很陌生,所以我的概念还不清楚。谁能告诉我如何解决这个问题,我有点理解这个问题,但我不知道如何解决它。任何帮助将不胜感激!

这是我的包含函数的 js 文件:

function getQuote()
  $.ajax( 

    url:'https://api.forismatic.com/api/1.0/?' + '&callback=?',
    dataType:'jsonp',
    data : 'method=getQuote&format=jsonp&lang=en&jsonp=?',
    success: function(response)
      $('.load').hide();
      $('blockquote').show();
      $('#quoteText').html(response.quoteText);
      
      if(response.quoteAuthor !== '')
        $('#quoteAuthor').html(response.quoteAuthor);
      
      else
        $('#quoteAuhtor').html('Unknown')
      
    
    
  );
;

【问题讨论】:

【参考方案1】:

看来您在这里运气不佳 - 将格式从 JSONP 更改为 JSON 将不起作用,因为 Forismatic API 不输出 CORS 标头,因此浏览器将阻止此操作。现在 JSONP 无法正常工作,因为 Forismic 没有输出正确的内容类型。

根据this forum post,该 API 不再受支持。其他人也有同样的问题,但没有解决办法 - 所以不幸的是,是时候寻找不同的 API了。

【讨论】:

是的,我什么都试过了,还是不行,无论如何感谢您提供的信息,我现在必须寻找不同的 api。

以上是关于拒绝执行脚本,因为 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查的主要内容,如果未能解决你的问题,请参考以下文章

拒绝执行脚本,因为它的 MIME 类型 ('text/html') 不可执行并且启用了严格的 MIME 类型检查

拒绝从“*”执行脚本,因为它的 MIME 类型('text/HTML')不可执行

拒绝从 'URL' 执行脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

将 jQuery 插件导入 Angular 2+ 拒绝执行脚本,因为它的 MIME 类型('text/html')不可执行

拒绝从 'file_name.php' 执行脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查

Django 管理员突然只在生产环境中注销(拒绝执行脚本,因为它的 MIME 类型('text/html')不可执行)