我正在尝试通过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。
application/javascript
(尽管如此,请不要告诉jQuery您期望使用JSON,因为这是矛盾的:)dataType: 'jsonp'。
dataType: 'jsonp'