【问题标题】:How to access a local JSON file with Javascript?如何使用 Javascript 访问本地 JSON 文件?
【发布时间】:2014-01-28 00:56:27
【问题描述】:

我有一个 Python 程序,它生成一个用于报告结果的 html 页面。 html 页面与有助于动态表处理的 javascript 文件一起保存在磁盘上的输出目录中。我还将一个 JSON 文件保存到我想用我的 javascript 文件读入的这个输出目录。这个 JSON 文件包含我希望能够访问的 Python 运行(保存的字典)中的数据。所以在磁盘上的输出目录中我有:

  • C:/somedirectory/output/report.html
  • C:/somedirectory/output/tables.js
  • C:/somedirectory/output/data.json

所有文件都是从我的程序创建的。

我的 html 页面有一个带有复选框的表格,如果选中了这些复选框,我想根据 JSON 文件中保存的数据更新第二个表格。因此,我想在任何浏览器中打开我的 html 报告并将 JSON 文件作为 javascript 对象读取。

我一直在尝试使用 ajax 和 .getJSON,但我得到了

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。

我已经搜索并看到了许多类似的问题,但没有遇到任何完全符合我需要的问题。想法和解决方法将不胜感激。谢谢。

更新

由于一切都在客户端本地运行,我决定将 JSON 数据(python 字典)和 javascript 代码直接嵌入到 html 报告输出中。这样,数据可以在内部访问,并且可以在没有依赖问题的情况下传递 html 文件。具有我在下面选择的答案的用户有一个链接到此解决方案。

【问题讨论】:

  • 您是从实际服务器运行此 HTML,还是仅在本地计算机上运行?
  • 听起来你是在本地访问 json,这会导致来自same origin policy 的问题。要解决此问题,请使用jsonp。您需要在 ajax 调用中指定这一点,说明 dataType: "jsonp"
  • @mjkaufer 没有从实际服务器运行,文件在计算机本地。用户的想法是安装一个桌面 python 程序,运行该程序,然后可以提取格式良好的 html 调查结果报告。
  • @cs_stackX 谢谢,我对 JSONP 进行了一些研究,但还没有成功,我再试一次。

标签: javascript jquery html json google-chrome


【解决方案1】:

JavaScript 在客户端机器上运行,因此它只能使用特殊设置访问客户端机器上的文件。

如果您希望它在您的服务器上读取 JSON,您应该使用路径:

http://example.com/output/data.json

更好的方法是从 Python 读取/写入 JSON 文件,然后将表数据发送到 JavaScript,如以下答案所示:Send data from Python to Javascript (JSON)

【讨论】:

  • 我最终采用了您在链接中指向的类似方法。目前我的答案是将所有内容嵌入到 html 页面中,包括 javascript 和 json 数据。然后可以在没有依赖关系的情况下传递html文件。谢谢!
猜你喜欢
  • 2010-09-27
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
相关资源
最近更新 更多