【发布时间】:2012-05-24 13:21:33
【问题描述】:
我今天做了几个测试,与我们可以使用 d3 加载 json 文件的方式有关,因为我对这个问题很感兴趣:d3.json works but $.getJson fails。然而,我做的一些测试有点棘手。
d3.xhr("http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=select+*+where+%7B%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FRoger_Federer%3E+%3Fp+%3Fo+filter%28lang%28%3Fo%29+%3D+%27en%27%29%7D%0D%0A&debug=on&timeout=&format=application%2Fsparql-results%2Bjson&save=display&fname=", function(data)
console.log("success1");
alert(data);
});
d3.json("http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=select+*+where+%7B%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FRoger_Federer%3E+%3Fp+%3Fo+filter%28lang%28%3Fo%29+%3D+%27en%27%29%7D%0D%0A&debug=on&timeout=&format=application%2Fsparql-results%2Bjson&save=display&fname=", function(data){ console.log("success2");
alert(data);
});
d3.xhr("http://api.worldbank.org/countries/BRA/indicators/BX.KLT.DINV.CD.WD?per_page=10&date=2007:2012&format=json", function(data){
console.log("success3");
alert(data);
})
d3.json("http://api.worldbank.org/countries/BRA/indicators/BX.KLT.DINV.CD.WD?per_page=10&date=2007:2012&format=json", function(data){
console.log("success4");
alert(data);
})
我知道问题可能与至少两个原因有关:MIME 类型和 CORS,但我无法理解其他几件事:
-
1234563案例(第一个) - 其余案例总是错误?
d3.xhr 方法支持哪些 MIME 类型?
-
如果 d3.json 只是 d3.xhr 的一个很好的包装器,为什么示例 1 有效而示例 2 无效...?我想澄清一下。我主要使用 d3 处理来自我的服务器的文件,但在某些情况下,我还必须使用一些外部数据,而且使用 D3 也能做到这一点非常好,而不仅仅是 jQuery。
李>
我认为应该有一个列表,列出这些方法接受的所有 MIME 类型。
【问题讨论】:
-
我提出这个问题的原因很简单:在接下来的几个月里,我们将大量使用 D3 进行关联数据的可视化
标签: jquery json mime-types d3.js cors