2013-06-27 36 views
17

Tôi có tệp html với một vài d3-đồ thị được viết trực tiếp trong thẻ tập lệnh vào đó. Khi tôi thuê ngoài một trong các biểu đồ vào một tệp js bên ngoài, tôi nhận được thông báo này "NS_ERROR_DOM_BAD_URI: Truy cập vào URI bị hạn chế bị từ chối". Nếu tôi xóa mã với d3.json, nơi nó đọc một tệp json cục bộ thì lỗi sẽ biến mất. Nhưng nó phải có khả năng để tải một tập tin json trong một js bên ngoài được nhúng vào một html, phải không?"NS_ERROR_DOM_BAD_URI: Truy cập vào URI bị hạn chế bị từ chối"

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

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

+0

vâng nhưng đây không phải là quyền truy cập json crossdomain phải không? các tập tin json nằm trên ổ cứng của tôi cộng với tôi không sử dụng jquery hoặc js json chức năng tuy nhiên những gì tôi sử dụng là chức năng json từ d3 mà không có một cái gì đó như jsonp – Schnodderbalken

+0

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

Trả lời

20

Tôi đã gặp lỗi tương tự và giải pháp là có index.html, script.js và data.json trong cùng một thư mục.

+5

@OP: lạ là câu trả lời này đã được chấp nhận. Từ câu hỏi của bạn, có vẻ như data.json * của bạn là * trong cùng một thư mục. Không? – LarsH

6

Xác định tập tin .json bạn liên quan đến gốc tệp .html bạn

Ex:

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

Tôi có cùng một vấn đề và tôi giải quyết bằng cách sử dụng đường dẫn tập tin json như thế này:

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

nếu tôi truy cập đường dẫn này từ trình duyệt, tệp sẽ mở URL.

0

Tôi đã giải quyết vấn đề này bằng cách di chuyển tệp JSON vào thư mục con của thư mục chứa tệp html của tôi.

GÃY:

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

LÀM VIỆC:

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