d3.json调用总是获取空数据

时间:2011-12-19 08:27:26

标签: json d3.js

如果我从浏览器调用服务器:http://localhost:8080/api/items/number/all.json或curl(curl -G http://localhost:8080/api/items/number/all.json),我会回到以下json:

{
"language":null,
"number":10,
"queryId":0,
"from":null,
"to":null,
"percentage":33,
"dataInfoSet":null
}

但是当我使用d3.json调用时:

d3.json("http://localhost:8080/api/items/number/all.json", function(jsondata){
            console.log(jsondata);
});

console.log的输出为空。

如果是http调用,我将json保存在文件(fileWithData.json)中并执行:

d3.json("fileWithData.json", function(jsondata){
                console.log(jsondata);
});

一切都按预期工作。有谁知道可能是什么问题?

1 个答案:

答案 0 :(得分:3)

在d3-js Goole小组的帮助下解决。 问题是加载json的页面没有从localhost:8080提供,因此,存在跨域限制。我刚刚在同一个应用程序中部署了该文件。 如果必须进行跨域调用,该小组建议使用jasonp,特别是CORS( http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/