【发布时间】: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