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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (170)

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

Refused to execute script from '*' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

这是请求:

$.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);
    }
});
提问于
用户回答回答于

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

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

更改您的服务器,以便为application/ javascript输出JSONP的正确MIME类型。

用户回答回答于

如果你的代理服务器或容器在提供.js文件时添加了以下头文件,它将强制一些浏览器(如Chrome)严格检查MIME类型:

X-Content-Type-Options: nosniff

移除此标头可防止Chrome执行MIME检查。

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • 浮生长恨欢娱少

    个人站长 · 站长 (已认证)

    51 粉丝2 提问4 回答
  • 滑稽园扛把子

    Swoole Inc · PHP工程师 (已认证)

    135 粉丝0 提问4 回答
  • 13火麒麟

    0 粉丝0 提问4 回答

扫码关注云+社区