我正在尝试实现forced edge bundling d3示例,就像在修改之前在github上一样。我做的唯一更改是将文件放在我的nginx服务器中并更改airlines.xml文件位置。
因此,我和原始html(参见上面的github)之间的唯一区别代码是xml位置行:
d3.xml("http://localhost/CH_Viz/example/bundling_data/airlines.xml", function(xml) {
//Transform the XML data into a proper format used by the algorithm
var raw_edges = xml.documentElement.getElementsByTagName("edge");
当我尝试这个时,raw_edges行会出现这个错误:“Uncaught TypeError:无法读取属性'documentElement'为null”
但我可以通过输入我的代码中使用的url来访问该文件。它似乎与MIME类型有关(与this question类似的问题),但我不明白如何使用它们。我在javascript控制台的网络面板中注意到我的尝试airlines.xml是text / plain类型,而它是工作版本中的application / xml。
我的nginx服务器具有text / xml mime类型,但不是application / xml类型。我尝试删除text / xml并用application / xml替换它然后重新启动nginx但是没有帮助:(。
帮助将不胜感激!