Ich habe eine HTML-Datei mit mehreren D3-Diagrammen, die direkt in Skript-Tags geschrieben sind. Wenn ich eines der Diagramme in eine externe js-Datei auslagere, erhalte ich die Meldung "NS_ERROR_DOM_BAD_URI: Zugriff auf eingeschränkte URI abgelehnt". Wenn ich den Code mit d3.json lösche, wo er eine lokale Json-Datei liest, verschwindet der Fehler. Es muss aber möglich sein, eine Json-Datei in eine externe JS-Datei zu laden, die in eine HTML-Datei eingebettet ist, oder?
d3.json("forcetree.json", function(json) {
root = json;
update();
});
Ich hatte den gleichen Fehler und die Lösung ist, Ihre index.html, script.js und data.json im selben Verzeichnis zu haben.
Geben Sie Ihre .json-Datei relativ zum Stamm der .html-Datei an
Ex:
d3.json("js/forcetree.json", function(json) {
root = json;
update();
});
Ich habe dieses Problem behoben, indem ich die JSON-Datei in ein Unterverzeichnis des Verzeichnisses verschoben habe, in dem sich meine HTML-Datei befindet.
GEBROCHEN:
www/
code/
hello.html # refers to ../data/hello.json
data/
hello.json
ARBEITEN:
www/
hello.html # refers to data/hello.json
data/
hello.json
Ich habe das gleiche Problem und löse den Json-Dateipfad wie folgt:
d3.json("file:///C:/path/...../js/forcetree.json", function(json) {
root = json;
update();
});
wenn ich auf diesen Pfad vom Browser aus zugreife, öffne die Datei die URL.