【问题标题】:Is there an option to enable json-loading from HDD in Chrome or Internet Explorer?是否可以在 Chrome 或 Internet Explorer 中启用从 HDD 加载 json 的选项?
【发布时间】:2014-11-03 06:33:41
【问题描述】:

是否有让 Chrome 或 Internet Explorer 从本地硬盘加载(通过 ajax-get)JSON 文件的选项?

Firefox 默认这样做。 Internet Explorer 在该行显示“premission denied”

request.open(method, url, true);

【问题讨论】:

标签: json security google-chrome internet-explorer file-io


【解决方案1】:

没有简单干净的方法可以做到这一点,你必须做一些服务器端编码

我建议你 node.js 这对于这种类型的 IO 操作非常方便。

第一次看起来很难,但是很好用。

  1. Download 并安装 nodejs。

  2. 创建一个简单的项目来处理这个问题。

    在你想要获取文件的目录下(例如D:\myfiles),创建一个文件server.js,该js文件的内容如下

var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(serveStatic("./")).listen(105);
  1. 从该目录打开命令提示符并进入该目录 (D:\myfiles)
  2. 运行这两个命令npm install connectnpm install serve-static(到此为止,是一次处理)
  3. 运行node server.js - 你的服务器已经准备好并正在运行
  4. 致电http://localhost:105/<file name>,您可以获取该目录中的任何文件。

【讨论】:

  • 非常感谢您的详细解答。在我的具体情况下,我有一个 C 程序,它生成数据并将它们写入 json 文件。 html 站点使用 d3js 绘制数据。为此,您的建议会产生巨大的开销。因此生成一个 javascript 文件会更简单。
【解决方案2】:

对于 chrome,您可以使用以下命令行标志,取自 question

  • --allow-file-access-from-files
  • --禁用网络安全

如该问题所述,您需要重新启动所有 chrome 浏览器。

对于 Internet Explorer,技巧是使用 XMLHttpRequest 对象的 ActiveX 版本。 请参阅以下链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多