2013-06-27 6 views
17

Ho un file html con diversi grafici d3 scritti direttamente in tag di script. Quando esternalizzo uno dei grafici in un file js esterno ottengo questo messaggio "NS_ERROR_DOM_BAD_URI: accesso all'URI limitato negato". Se cancello il codice con d3.json dove legge un file json locale, l'errore scompare. Ma deve essere possibile caricare un file json in un js esterno che è incorporato in un html, giusto?"NS_ERROR_DOM_BAD_URI: accesso a URI limitato negato"

d3.json("forcetree.json", function(json) { 
root = json; 
update(); 
}); 
+0

http://stackoverflow.com/questions/1105055/ajax-and-ns-error-dom-bad-uri-error –

+0

sì ma questo non è un accesso json crossdomain giusto? il file json si trova sul mio disco fisso in più io non uso la funzione jquery o js json, tuttavia quello che uso è la funzione json di d3 che non ha qualcosa come jsonp – Schnodderbalken

+0

http://stackoverflow.com/questions/17077931/d3-samples-in-a-microsoft-stack? Answertab = active # tab-top –

risposta

20

Stavo avendo lo stesso errore e la soluzione è di avere il tuo index.html, script.js e data.json nella stessa directory.

+5

@OP: strano che questa risposta sia stata accettata. Dalla tua domanda, sembra che il tuo data.json * sia * nella stessa directory. No? – LarsH

6

Specificare il file .json relativo alla root file HTML

Es:

d3.json("js/forcetree.json", function(json) { 
    root = json; 
    update(); 
}); 
0

Ho lo stesso problema e ho risolto utilizzando il percorso del file JSON come questo:

d3.json("file:///C:/path/...../js/forcetree.json", function(json) { 
    root = json; 
    update(); 
}); 

se accedo a questo percorso dal browser, il file apre l'URL.

0

Ho risolto questo problema spostando il file JSON in una sottodirectory della directory contenente il mio file html.

ROTTO:

www/ 
    code/ 
    hello.html # refers to ../data/hello.json 
    data/ 
    hello.json 

LAVORO:

www/ 
    hello.html  # refers to data/hello.json 
    data/ 
    hello.json