如果我从浏览器调用服务器: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);
});
一切都按预期工作。有谁知道可能是什么问题?
答案 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/ )