2015-04-06 64 views
0

我們使用D3 JavaScript來初始化數據文檔,然後構建應用程序特定的JavaScript來處理數據。處理一個JSON文件;相同的副本不是

特定應用的JavaScript的一個子集是這樣的:

drawLegend(); 
    thousand_sep_format = d3.format(','); 
    d3.json("http://wafi.iit.cnr.it/webvis/tmp/dbpedia/realOntology.json", function(error, root) 

更具體地說,它正確地處理此JSON文件:

http://wafi.iit.cnr.it/webvis/tmp/dbpedia/realOntology.json 

然而,當我們複製JSON文件到另一臺Linux/Ubuntu服務器,複製的JSON文件無法處理。

這裏是複製 JSON文件:

http://www.ontomatica.com/public/test/dbpedia_ontology/realOntology.json 

是什麼JSON之間的區別 - JSON - 複製

將原始JSON文件複製到新服務器的正確過程是什麼?

我們的目標是刪除部分原始JSON文件,然後plot的子集。因此我們必須在服務器上放置一個工作子集。

+4

檢查控制檯和網絡選項卡。科學猜測:同源策略 – zerkms

+1

根據瀏覽這兩個URL的響應頭並假設'd3'表明代碼在瀏覽器中運行,那麼可以在瀏覽器的開發工具控制檯中找到答案,然後是[this]的副本(http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy)。 – Quentin

+0

@zerkms你能給我多一點信息 - 不知道要看什麼。此外,我們需要JS讀取URL並且沒有看到兩個URL之間的區別。 –

回答

4

第一個站點回應一個Access-Control-Allow-Origin標頭,其值爲*。這告訴瀏覽器他們應該允許xhr訪問站點,而不管源於哪個域。

其他網站不這樣做,所以瀏覽器不會獲取內容。

這個問題與URL本身無關,也不與JSON內容有關。這是服務器配置的問題,並且您如何更改取決於託管環境。

+3

^這可能是正確的答案。 另一個可能導致問題的區別是www.ontomatica.com發送的內容類型爲'text/plain'而不是'application/json'。 – HankScorpio

相關問題