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

标签 javascript jquery ajax json google-chrome

我正在尝试通过 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 程序。

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

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

关于javascript - 由于 MIME 类型错误,Chrome 拒绝执行 AJAX 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24528211/

相关文章:

javascript - 在 Angular 上使用 vm 打印数据

jquery - Event.type 在 Mozilla Firefox 中不起作用

ajax - 当存在 JSONP 和 CORS 等解决方法时,为什么浏览器具有同源策略?

javascript - Firebase + REST + jquery 产生奇怪的键

javascript - “FormData”仅在 IE 中未定义

php - jQuery AJAX 表单错误。空字符串

javascript - 如何检测选择了哪个选项?

javascript - 使电话号码仅在移动浏览器上可点击

javascript - IE11 FormData AJAX Post with File 在 401 后挂起

JQuery 就地编辑,无插件