Tôi đã thực hiện một số thử nghiệm ngày hôm nay liên quan đến cách chúng tôi có thể tải các tệp json với d3 vì tôi bị hấp dẫn bởi câu hỏi này: d3.json works but $.getJson fails. Tuy nhiên một số các bài kiểm tra mà tôi đã thực hiện là một chút khó khăn.d3.json, d3.xhr và các vấn đề liên miền chéo
d3.xhr("http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=select+*+where+%7B%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FRoger_Federer%3E+%3Fp+%3Fo+filter%28lang%28%3Fo%29+%3D+%27en%27%29%7D%0D%0A&debug=on&timeout=&format=application%2Fsparql-results%2Bjson&save=display&fname=", function(data)
console.log("success1");
alert(data);
});
d3.json("http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=select+*+where+%7B%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FRoger_Federer%3E+%3Fp+%3Fo+filter%28lang%28%3Fo%29+%3D+%27en%27%29%7D%0D%0A&debug=on&timeout=&format=application%2Fsparql-results%2Bjson&save=display&fname=", function(data){ console.log("success2");
alert(data);
});
d3.xhr("http://api.worldbank.org/countries/BRA/indicators/BX.KLT.DINV.CD.WD?per_page=10&date=2007:2012&format=json", function(data){
console.log("success3");
alert(data);
})
d3.json("http://api.worldbank.org/countries/BRA/indicators/BX.KLT.DINV.CD.WD?per_page=10&date=2007:2012&format=json", function(data){
console.log("success4");
alert(data);
})
Tôi biết rằng vấn đề có thể liên quan đến ít nhất 2 lý do: kiểu MIME và CORS, nhưng tôi không thể hiểu được một vài điều khác:
nếu gọi lại luôn thực hiện (thậm chí khó khăn đôi khi với OK 200 cũng có thể là một lỗi như được thấy từ các phương thức .ajax() và .getJSON() của jQuery. Tại sao tôi có thể xem dữ liệu chỉ trong một trường hợp (trường hợp đầu tiên) - phần còn lại của các trường hợp luôn luôn lỗi?
loại MIME được hỗ trợ bằng phương pháp d3.xhr là gì?
nếu d3.json chỉ là một trình bao bọc đẹp cho d3.xhr tại sao ví dụ 1 hoạt động và ví dụ 2 không hoạt động ...? Tôi muốn làm rõ một số. Tôi chủ yếu sử dụng d3 với các tập tin từ máy chủ của tôi, nhưng có những trường hợp như thế này khi tôi cũng phải sử dụng một số dữ liệu bên ngoài, và nó sẽ thực sự tốt đẹp để làm điều này cũng với D3, không chỉ với jQuery.
Tôi nghĩ rằng nên có danh sách với tất cả các loại MIME được chấp nhận theo các phương pháp này.
lý do tôi cho yêu cầu này rất đơn giản: chúng tôi sẽ sử dụng D3 nặng nề cho visualizations dữ liệu được liên kết trong những tháng tiếp theo – paxRoman