JavaScript:如何读取本地文件(特别是json文件)?

JavaScript:如何读取本地文件(特别是json文件)?,javascript,Javascript,我的问题很简单: 我希望读取一个依赖于前端而不是服务器的配置json文件。 文件名和路径在JS文件中硬编码。 我不是从一些文件对话框中得到它的名字,就像很多例子中那样 我还尝试了一些使用fetch的建议,比如: fetch('./data/properties.json') .then(response => response.json()) .then(data => console.log(data)) .catch(err => console.l

我的问题很简单: 我希望读取一个依赖于前端而不是服务器的配置json文件。 文件名和路径在JS文件中硬编码。 我不是从一些文件对话框中得到它的名字,就像很多例子中那样

我还尝试了一些使用fetch的建议,比如:

fetch('./data/properties.json')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(err => console.log(error));
但我总是犯这样的错误

exh.js:30获取API无法加载 file:///C:/Users/myusername/WebAppsProjects/BBSimFE/data/properties.json. 对于CORS请求,URL方案必须为“http”或“https”

我还安装了和CORS Chrome extension,并将其打开=>无帮助

我还试图了解我是否可以使用FileReader。 例如:

var fr = new FileReader();
fr.readAsText(new File([""], "./data/properties.json"));
fr.onload = function(evt){
    alert(fr.result);
 }
但这不会带来任何回报

另外,我没有使用node.js,因此无法使用require()

请帮忙。
感谢

出于安全考虑,
获取
不适用于
文件
URL,因此在浏览器中打开文件将不起作用。您应该确保XHR请求能够正常工作。一些选项包括在文件所在的目录中运行
python-mhttp.server8080
,然后导航到http://localhost:8080 在浏览器中,或使用类似于。

的插件出于安全目的,
fetch
不适用于
文件
URL,因此在浏览器中打开文件将不起作用。您应该确保XHR请求能够正常工作。一些选项包括在文件所在的目录中运行
python-mhttp.server8080
,然后导航到http://localhost:8080 在浏览器中,或使用类似的插件。

嘿)出于安全目的,您不应在前端存储重要的配置信息。它应该在服务器端

但若在配置文件中并没有存储重要的信息,那个么需要提升本地主机上的服务器,端口可以是任意端口。此外,您还需要使用config.json来处理您的文件夹,因为它在服务器端是静态的。之后,您就有了一个包含所需文件的静态文件夹,在当前情况下是config.json。在前端,您需要发送

fetch('http://localhost:<your_port>/static/config.json', options); 
fetch('http://localhost:/static/config.json",选择),;
如果将静态文件夹设置为静态,如果否,则用静态文件夹名称替换为静态。你可以检查你的静态文件是否可用http://localhost:/static 路由,您应该看到静态文件夹中的所有文件和文件夹。

嘿)出于安全目的,您不应该在前端存储重要的配置信息。它应该在服务器端

但若在配置文件中并没有存储重要的信息,那个么需要提升本地主机上的服务器,端口可以是任意端口。此外,您还需要使用config.json来处理您的文件夹,因为它在服务器端是静态的。之后,您就有了一个包含所需文件的静态文件夹,在当前情况下是config.json。在前端,您需要发送

fetch('http://localhost:<your_port>/static/config.json', options); 
fetch('http://localhost:/static/config.json",选择),;

如果将静态文件夹设置为静态,如果否,则用静态文件夹名称替换为静态。你可以检查你的静态文件是否可用http://localhost:/static 路由时,您应该会看到静态文件夹中的所有文件和文件夹。

您是否尝试过使用导入,如从“/data/properties.json”导入数据和控制台.log(data)@KaungKhantZaw谢谢。当我将导入放在js文件的顶部时,我得到“不能在模块外使用导入语句”。这是正确的位置吗?尝试将
type=“module”
添加到脚本标记中,如
@KaungKhantZaw您的意思是将“type=“module””添加到html中的脚本标记中,该标记使用js尝试导入json内容?您是否尝试过使用import-like
从“/data/properties.json”
console.log导入数据(数据)
@KaungKhantZaw谢谢。当我将导入放在js文件的顶部时,我得到了“不能在模块外使用导入语句”。这是正确的位置吗?尝试将
type=“module”
添加到脚本标记中,如
@KaungKhantZaw您的意思是添加'type=“module”'到html中的脚本标记,它使用js尝试导入json内容?谢谢。在服务器端存储信息,甚至存储服务器地址本身?我建议您在前端存储服务器地址。在您的文件中,对api请求的责任是什么。它将类似于const baseUrl=''。因为您将在何时部署你在服务器上的应用程序(如heroku)将没有端口。所有你将拥有的都是地址(如https://address)。因此,如果我很了解你,配置服务器地址的最佳做法是在js文件中设置硬编码值,对吗?谢谢。在服务器端存储信息,甚至存储服务器地址本身?我建议你存储se前端的服务器地址。在您的文件中,什么是对api请求的责任。它将类似于const baseUrl=''。因为当您将应用程序部署到heroku这样的服务器上时,您将没有端口。所有您将拥有的地址都是https://address。因此,如果我很了解您,配置服务器地址的最佳做法是在js文件中设置硬编码值,对吗?