如何通过d3.json从S3下载json文件

时间:2015-06-06 08:42:37

标签: javascript json d3.js amazon-s3

我已经设置了一个S3存储桶并上传了一些json文件。每个文件都有Content-type:application / json。可通过URL访问的文件,如果我在浏览器中输入或使用wget,我可以毫无问题地下载它。

但如果我尝试通过d3.json或d3.xhr下载此文件,则函数返回null:

d3.json(jsonUrl, function(json) {
    alert(json); 
});

d3.xhr(jsonUrl, function(r) {
    alert(r);
});

我在Firefox中打开了调试控制台,我可以看到请求网址是正确的,它确实通过了,响应是200,但响应中没有数据。

更新。事实证明浏览器允许通过java脚本从不同主机下载文件(如http://www.w3.org/TR/cors/中所述)。我在Apache中设置了代理,目前它可以工作,但我正在寻找更好的解决方案。

1 个答案:

答案 0 :(得分:1)

由于浏览器的“Same Origin Policy”安全模型,您无法执行此操作。您可以使用JSONP

在没有代理的情况下实现它

查看上面链接中的示例代码,例如