拒绝执行脚本,因为 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 类型检查