处理一个JSON文件;相同的副本不是

问题描述:

我们使用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://*.com/questions/3076414/ways-to-circumvent-the-same-origin-policy)。 – Quentin

+0

@zerkms你能给我多一点信息 - 不知道要看什么。此外,我们需要JS读取URL并且没有看到两个URL之间的区别。 –

第一个站点回应一个Access-Control-Allow-Origin标头,其值为*。这告诉浏览器他们应该允许xhr访问站点,而不管源于哪个域。

其他网站不这样做,所以浏览器不会获取内容。

这个问题与URL本身无关,也不与JSON内容有关。这是服务器配置的问题,并且您如何更改取决于托管环境。

+3

^这可能是正确的答案。 另一个可能导致问题的区别是www.ontomatica.com发送的内容类型为'text/plain'而不是'application/json'。 – HankScorpio