猿问

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

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

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

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

这是请求:

$.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);
    }});

有人有解决方法吗?


白衣染霜花
浏览 1299回答 3
3回答

温温酱

通过添加一个回调参数,您告诉jQuery您要使用脚本元素而不是使用XMLHttpRequest的JSON请求来请求JSONP。JSONP不是JSON。这是一个JavaScript程序。更改您的服务器,以便为JSONP输出正确的MIME类型application/javascript。(当你在它时,停止告诉jQuery你期待JSON,因为这是矛盾的:) dataType: 'jsonp'。

慕侠2389804

仅供参考,我从Chrome控制台得到了同样的错误。我以为我的AJAX功能导致它,但我注释掉我的精缩脚本/javascripts/ajax-vanilla.min.js来/javascripts/ajax-vanilla.js。但实际上源文件是在/javascripts/src/ajax-vanilla.js。因此,在Chrome中,即使无法找到该文件,您也会收到错误的MIME类型错误。在这种情况下,错误消息被描述为text/plain错误的MIME类型。
随时随地看视频慕课网APP
我要回答