当前位置: 首页 > 面试题库 >

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

黄逸清
2023-03-14
问题内容

我正在尝试通过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);
    }
});

有人对此有解决方法吗?


问题答案:

通过添加一个回调参数,您告诉jQuery您想使用脚本元素而不是XMLHttpRequest来请求JSONP。

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

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

(尽管如此,请不要告诉jQuery您期望使用JSON,因为这是矛盾的:)dataType: 'jsonp'



 类似资料: