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

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

https://stackoverflow.com/questions/24528211/

相关文章:

json - 将 Go 结构转换为 JSON

c# - 使用 JSON.NET 将 JSON 数据反序列化为 C#

javascript - 序列化包含循环对象值的对象

javascript - JSON 劫持在现代浏览器中仍然是一个问题吗?

json - 将 CSV/XLS 转换为 JSON?

android - 在 Android 中发送和解析 JSON 对象

json - 在 ASP.NET 中使用 WebAPI 或 MVC 返回 JSON

javascript - 使用 JavaScript 遍历 JSON 对象树的所有节点

ruby-on-rails - 如何使用 RSpec 检查 JSON 响应?

javascript - 将字符串转换为 JSON 对象