当我从索引中调用JavaScript文件时,我遇到了这个问题。 这是我的JavaScript文件(jQuery):
Refused to execute script from 'https://api.blockchain.info/pools?
timespan=5days&callback=jQuery33105603115327243822_1528663793253&_=1528663793254
' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
这是我尝试从API获取json文件时出现的错误:
<unicode>
提前致谢!
答案 0 :(得分:1)
您尝试使用旧的hacky方法来解决称为JSON-P的跨源限制。
基本上,这是通过将<script>
元素注入到指定了URL的页面中来实现的。在全局空间中设置具有自动生成名称(由jQuery生成)的回调。服务器在查询字符串中看到此callback=someCallback
参数,而不是返回JSON,它返回的JavaScript类似于:
someCallback(...data...);
浏览器然后执行这个脚本就像任何其他脚本一样,使用结果数据调用回调,一切都很顺利。
除了返回的数据外,大多数HTTP响应都有一些标头。其中一个是Content-Type
,它向浏览器指示它获得了什么类型的数据,因此它知道如何处理它。可执行JavaScript的Content-Type
(通常称为MIME类型)通常为application/javascript
。正如错误消息所示,application/json
不可执行。
问题是两件事之一:
callback
参数,看看会发生什么。根据我在回复中看到的内容,这就是问题所在。Content-Type
值。 (如果这是你的问题,你可以做任何事情来解决它没有代理响应的问题。虽然你的情况不是问题。)