首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由于MIME类型错误,Chrome拒绝执行AJAX脚本

由于MIME类型错误,Chrome拒绝执行AJAX脚本
EN

Stack Overflow用户
提问于 2014-07-02 17:59:53
回答 7查看 314.4K关注 0票数 146

我正在尝试通过AJAX访问JSON脚本,它在Safari和其他浏览器上运行良好,但不幸的是不能在Chrome中执行。它会出现以下错误:

拒绝执行来自'*‘的脚本,因为其MIME类型('application/json')不可执行,并且启用了严格的MIME类型检查。

下面是请求:

代码语言:javascript
复制
$.ajax({
    url: "http://some_url/test.json?callback=?",
    type: "GET",
    dataType: 'json',
    cache: true,
    success: function (data, status, error) {
      console.log('success', data);
    },
    error: function (data, status, error) {
      console.log('error', data, status, error);
    }
});

有谁有解决这个问题的办法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-07-02 18:17:49

通过添加回调参数,您告诉jQuery您希望使用脚本元素请求JSONP,而不是使用XMLHttpRequest请求JSON。

JSONP不是JSON。这是一个JavaScript程序。

更改您的服务器,使其为JSONP输出正确的MIME类型,即application/javascript

(当你这样做的时候,停止告诉jQuery你期待的是JSON,因为这是矛盾的:dataType: 'jsonp')。

票数 72
EN

Stack Overflow用户

发布于 2014-12-03 17:19:15

如果您的代理服务器或容器在提供.js文件时添加了以下标头,则会强制某些浏览器对MIME类型执行严格检查:

代码语言:javascript
复制
X-Content-Type-Options: nosniff

删除此头以阻止Chrome执行MIME检查。

票数 57
EN

Stack Overflow用户

发布于 2016-05-20 17:47:23

仅供参考,我在Chrome控制台上也遇到了同样的错误。我认为是我的AJAX函数引起的,但我取消了从/javascripts/ajax-vanilla.min.js/javascripts/ajax-vanilla.js的精简脚本的注释。但实际上,源文件位于/javascripts/src/ajax-vanilla.js。所以在Chrome中,即使找不到文件,你也会得到糟糕的MIME类型错误。在这种情况下,错误消息被描述为text/plain bad MIME类型。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24528211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档