微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

本地javascript无法打开本地文件

请告诉我,为什么本地javascript无法打开本地文件
我正在尝试创建一个简单的javascript / html应用程序,该应用程序将从本地文件系统在本地计算机上运行.此应用程序尝试使用不同的方法读取配置文件(json),但会出现以下错误(Chrome):

>在XMLHttpRequest的情况下,方法open(“GET”,filename,true)抛出异常:

XMLHttpRequest cannot load file:///bla-bla-bla. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

>如果是document.createElement(“iframe”).src = filename我有一个例外:

VM596:1 Uncaught DOMException: Failed to read the ‘contentDocument’ property from ‘HTMLIFrameElement’: Blocked a frame with origin “null” from accessing a cross-origin frame.”

>如果var f = new File([],filename,{type:“text / plain”});我有一个零对象的File对象,根本没有错误.然后FileReader返回一个空结果.

所以,我的问题是:
为什么它是“交叉起源”?这些文件存储在同一目录中!
我如何从运行脚本的同一源/目录中打开本地文件
请帮忙.

P.S.:是的,我知道–allow-file-access-from-files但我需要由客户运行.

解决方法:

你可以做些什么来读取你的.json文件,就是把它声明为.js.

data.js

var data = `{"value1": 10, "value2": "hello"}`

的index.html

<script src="data.js"></script>

<script>
  console.log(JSON.parse(data))
</script>

这将打印

Object {value1: 10, value2: "hello"}

它们都必须在同一目录中,否则你要改变data.js的导入.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐