gpt4 book ai didi

javascript - 使用 jQuery/Javascript 在本地系统中加载 JSON 文件

转载 作者:行者123 更新时间:2023-11-30 11:53:08 24 4
gpt4 key购买 nike

我是脚本语言的新手。我有一个 new.json 文件,我想加载 gary.html HTML 文件。我不想在服务器上运行 gary.html 文件。我想在我的机器上本地运行它。

当我的 HTML 文件使用 $.getJSON 加载 new.json 文件时,出现空白屏幕,当我在控制台上检查时出现错误:

jquery-3.1.0.js:9392 XMLHttpRequest cannot load file:///C:/Users/Gary/Desktop/new.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.`

这是我的加载代码

function show() {
//read(a)
var myItems;

$.getJSON('new.json', function(data) {
myItems = data.a;
read(myItems)
});
}

当我用谷歌搜索这个错误时,人们建议我在 firefox 上运行这个文件,或者执行这个 chrome --allow-file-access-from-files。该文件正在 firefox 中加载,当我执行 chrome --allow-file-access-from-files 时,该文件也会在 chrome 中加载。

我主要担心的是,当我将 new.jsongary.html 文件分发给其他人时,其他人可能有也可能没有 firefox 或 chrome 的 chrome --allow-file-access-from-files 权限。我只想让用户点击 gary.html 并加载 new.json 文件的数据。

我怎样才能做到这一点?

最佳答案

如您所见 - 您无法向本地文件系统发出 AJAX 请求,因为这是一个巨大的安全问题。唯一的解决方法是让用户在浏览器中手动启用设置(无论如何这都不是一个好主意)。如果您不想这样做,那么您将不得不使用中央服务器来处理所有请求。

另一种方法是通过包含 new.json 来避免使用 AJAX在页面中使用额外的文件 <script />标签。您还需要将对象分配给文件中的变量,如下所示:

// new.json
var newJson = {"a": [{"name":"avc"}, {"name":"Anna"}, {"name":"Peter"}]}

然后在gary.html :

<head>
<script src="jquery.js"></script>
<script src="new.json"></script>
<script>
$(function() {
newJson.a.forEach(function(item) {
console.log(item.name);
});
})
</script>
</head>

关于javascript - 使用 jQuery/Javascript 在本地系统中加载 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38891389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com