我有一个html文件,其中有几个d3图直接用脚本标签写入其中。当我将其中一个图表外包到外部js文件中时,我收到此消息“NS_ERROR_DOM_BAD_URI:访问受限制的URI被拒绝”。如果我用d3.json删除代码,它读取本地json文件,则错误消失。但是必须能够在嵌入到html中的外部js中加载json文件,对吗?
d3.json("forcetree.json", function(json) {
root = json;
update();
});
答案 0 :(得分:20)
我遇到了同样的错误,解决方法是将index.html,script.js和data.json放在同一目录中。
答案 1 :(得分:6)
指定相对于.html文件根目录的.json文件
例如:
d3.json("js/forcetree.json", function(json) {
root = json;
update();
});
答案 2 :(得分:0)
我有同样的问题,我解决了使用这样的json文件路径:
d3.json("file:///C:/path/...../js/forcetree.json", function(json) {
root = json;
update();
});
如果我从浏览器访问此路径,则文件会打开URL。
答案 3 :(得分:0)
我通过将JSON文件移动到包含我的html文件的目录的子目录来解决了这个问题。
BROKEN:
www/
code/
hello.html # refers to ../data/hello.json
data/
hello.json
WORKING:
www/
hello.html # refers to data/hello.json
data/
hello.json