如何在没有Jquery的情况下本地加载带有javascript的json文件?

如何在没有Jquery的情况下本地加载带有javascript的json文件?,javascript,html,json,loading,Javascript,Html,Json,Loading,我正在创建一个用javascript开发的网站,我有一个小问题,每次我尝试,我的浏览器都不想加载我的json文件 我尝试了许多在网上找到的代码,但都不起作用(或者我不知道如何让它们起作用)。最后,我喜欢这一个,这是很容易理解,但它也不工作,总是返回一个错误消息 function loadJSON(path,success, error) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function()

我正在创建一个用javascript开发的网站,我有一个小问题,每次我尝试,我的浏览器都不想加载我的json文件

我尝试了许多在网上找到的代码,但都不起作用(或者我不知道如何让它们起作用)。最后,我喜欢这一个,这是很容易理解,但它也不工作,总是返回一个错误消息


function loadJSON(path,success, error)
{
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function()
    {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 1) {
                if (success)
                    success(JSON.parse(xhr.responseText));
            } else {
                if (error)
                    error(xhr);
            }
        }
    };
    xhr.open("GET", path , true);
    xhr.send();
}

function test()
{
    loadJSON('test.json', function(data) { console.log(data); }, function(xhr) { console.error(xhr); });
}

我运行测试函数,但每次控制台都会返回一个错误。有人有办法解决我的问题吗?

状态是HTTP响应代码

200表示请求已成功。状态很可能永远不会是1

这是一份清单

作为解决方案,我建议使用,这是查询文件的现代方法


如果您真的想使用AJAX,请使用以下方法:

var request = new XMLHttpRequest();
request.open('GET', '/my/url', true);

request.onload = function() {
  if (this.status >= 200 && this.status < 400) {
    // Success!
    var resp = this.response;
  } else {
    // We reached our target server, but it returned an error

  }
};

request.onerror = function() {
  // There was a connection error of some sort
};

request.send();
var-request=new-XMLHttpRequest();
open('GET','/my/url',true);
request.onload=函数(){
如果(this.status>=200&&this.status<400){
//成功!
var resp=此响应;
}否则{
//我们到达了目标服务器,但它返回了一个错误
}
};
request.onerror=函数(){
//出现了某种连接错误
};
request.send();

来源:

当你说“本地”时,你的意思是“加载此脚本的HTML文件旁边”吗?因为这是唯一可行的方法。另外,如果您收到一条错误消息,请告诉我们确切的错误是什么……?如果您不需要对整个XHR函数进行编码,请尝试fetch现代浏览器支持fetch及其简单易用的可能重复的Yes,
xhr.status===1
是这里的主要问题。它看起来很有效,但我如何才能取回json文件上写的内容?(我真的不明白它是如何工作的,但我会进行研究)看看本页上的第一个示例:。在第一个
然后
回调中,
response.json()
是已解析的JSON对象。