请告诉我,为什么本地javascript无法打开本地文件? 我试图创建一个简单的JavaScript/HTML应用程序,应该从本地文件系统在本地机器上运行。这个应用程序试图读取配置文件中使用不同的方法(JSON),但得到以下错误(铬):本地javascript无法打开本地文件
在XMLHttpRequest的情况下,方法
open("GET", filename, true)
抛出一个异常:的XMLHttpRequest无法加载文件:/// bla-bla-bla。协议方案仅支持交叉源请求:http,data,chrome,chrome-extension,https,chrome-extension-resource。
在
document.createElement("iframe").src=filename
情况下,我有另一个异常:VM596:1未捕获的抛出:DOMException:未能读取从 'HTMLIFrameElement' 的 'contentDocument' 属性:被阻止与原籍 “空” 帧从访问跨域框架。”
在
var f=new File([], filename, { type: "text/plain" });
情况下,我已经得到了与零的大小,并在所有没有错误的文件对象。的FileReader返回一个空的结果,那么,
所以,我的问题是: 为什么它是“跨源”?这些文件存储在同一个目录中! 我怎么能打开来自我运行该脚本相同的来源/目录的本地文件? 请帮忙。
P.S .:是的,我知道--allow-file-access-from-files
,但我需要由客户运行此。
'file://协议真的有一个非常有限的用法,用于测试或查看一个单独的文件。对于真正的webapp测试,你需要建立一个小型的,基本的“web服务器”程序,它可以向'localhost/index.html'或'localhost/bla-bla-bla.js'发送请求。例如,Python可以让你通过命令行在python -m SimpleHttpServer 80上设置一个文件夹 – Katana314
@BbIKTOP,tou可以将JSON文件转换成一个javascript文件(将'var myVariable ='添加到开头json文件),然后使用''将数据包含在'myVariable'(对象)中。虽然不是最好的解决方案,但可行。 –
他们有更多的100个没有局域网,运行非常具体的软件(健身房),这个应用程序旨在显示一些广告videoclips。 这就是为什么它不可能与web服务器一起使用这样一个明显的解决方案,这就是为什么我在这里问这个问题。 当然,可以不使用json配置,而是将配置放入代码中,也许放在单独的文件中。这并不有趣,因此无需在此处询问或讨论。 – BbIKTOP