处理一个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
的子集。因此我们必须在服务器上放置一个工作子集。
答
第一个站点回应一个Access-Control-Allow-Origin
标头,其值为*
。这告诉浏览器他们应该允许xhr访问站点,而不管源于哪个域。
其他网站不这样做,所以浏览器不会获取内容。
这个问题与URL本身无关,也不与JSON内容有关。这是服务器配置的问题,并且您如何更改取决于托管环境。
+3
^这可能是正确的答案。 另一个可能导致问题的区别是www.ontomatica.com发送的内容类型为'text/plain'而不是'application/json'。 – HankScorpio
检查控制台和网络选项卡。科学猜测:同源策略 – zerkms
根据浏览这两个URL的响应头并假设'd3'表明代码在浏览器中运行,那么可以在浏览器的开发工具控制台中找到答案,然后是[this]的副本(http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy)。 – Quentin
@zerkms你能给我多一点信息 - 不知道要看什么。此外,我们需要JS读取URL并且没有看到两个URL之间的区别。 –