Javascript 如何读取本地json文件?

Javascript 如何读取本地json文件?,javascript,json,Javascript,Json,我在这里看到过类似的问题,但我就是不明白 我正在构建一个小网页,我想从我的文件系统中读取一个.json文件,并在其中获取对象 该网页也是本地的,.json文件与.html文件位于同一文件夹中 如果可能的话,如何在我的Ubuntu机器上不使用任何服务器也不使用jquery?您只需在页面上附加一个标记,将SRC指向同一文件夹中的本地.js文件。您不需要使用Ajax。这里有一些普通的javascript XMLHTTPRequest代码,它考虑了ActiveX对象的IE特性: var useActiv

我在这里看到过类似的问题,但我就是不明白

我正在构建一个小网页,我想从我的文件系统中读取一个.json文件,并在其中获取对象

该网页也是本地的,.json文件与.html文件位于同一文件夹中


如果可能的话,如何在我的Ubuntu机器上不使用任何服务器也不使用jquery?

您只需在页面上附加一个
标记,将SRC指向同一文件夹中的本地.js文件。您不需要使用Ajax。

这里有一些普通的javascript XMLHTTPRequest代码,它考虑了ActiveX对象的IE特性:

var useActiveX = typeof ActiveXObject !== 'undefined';
function loadJSON(file, callback) {
    var xobj;
    if (useActiveX) {
        xobj = new ActiveXObject('Microsoft.XMLHTTP'); 
    } else {
        xobj = new XMLHttpRequest();
    }
    xobj.callback = callback;
    if (xobj.overrideMimeType) {
        xobj.overrideMimeType('application/json');
    }
    xobj.open('GET', file, false);
    xobj.onreadystatechange = function() {
        if (this.readyState === 4) {
            this.callback(this);
        }
     }
     xobj.send(null);
}
然后,只需通过向其提供文件路径和回调函数来运行它:

loadJSON('filename.json', function(obj) {
    alert(obj.responseText);
}

只要使用
XMLHTTPRequest
并记住使用
——如果在Chrome中测试,则允许从文件访问文件。如果您不知道如何做,我可以给您一个代码片段。最简单的方法是对.json文件进行AJAX调用。当然,如果没有jQuery这样的库,跨浏览器AJAX就更有用了tedious@jackwanders不需要是AJAX,也可以是同步的;一些JSON稍后无法被引用,因为它创建了一个匿名对象。只需将其添加为。我在.json文件的语法上浪费了很多时间,因为出于某种疯狂的原因,解析器无法理解.json文件中的a对象是否用两行代码编写。此
XMLHttpRequest存在x源问题,无法加载file:///Users/fjsadlfja/Desktop/myData/Messages.json. 跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。
@DanielKobe浏览器默认情况下会阻止该请求,因为您正在与本地文件系统交互。查找Chrome的--allow file access from files标志或Firefox的security.fileuri.strict\u origin\u policy config选项。使用时要小心,完成后一定要禁用它们。或者,您可以运行本地服务器并使用它,比如python3的http.server或简单节点文件服务器。