Pau*_*gan 142 javascript ajax jquery json google-chrome
我试图通过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);
}
});
Run Code Online (Sandbox Code Playgroud)
有人有解决方法吗?
Que*_*tin 70
通过添加一个回调参数,您告诉jQuery您要使用脚本元素而不是使用XMLHttpRequest的JSON请求来请求JSONP.
JSONP不是JSON.这是一个JavaScript程序.
更改您的服务器,以便为JSONP输出正确的MIME类型application/javascript.
(当你在它时,停止告诉jQuery你期待JSON,因为这是矛盾的:) dataType: 'jsonp'.
Tom*_*ain 54
如果您的代理服务器或容器在提供.js文件时添加以下标头,则会强制某些浏览器(如Chrome)严格检查MIME类型:
X-Content-Type-Options: nosniff
Run Code Online (Sandbox Code Playgroud)
删除此标头可阻止Chrome执行MIME检查.
Lan*_*nti 11
仅供参考,我从Chrome控制台得到了同样的错误.我以为我的AJAX功能导致它,但我注释掉我的精缩脚本/javascripts/ajax-vanilla.min.js来/javascripts/ajax-vanilla.js.但实际上源文件是在/javascripts/src/ajax-vanilla.js.因此,在Chrome中,即使无法找到该文件,您也会收到错误的MIME类型错误.在这种情况下,错误消息被描述为text/plain错误的MIME类型.
| 归档时间: |
|
| 查看次数: |
293251 次 |
| 最近记录: |