如何在没有Jquery的情况下本地加载带有javascript的json文件?
我正在创建一个用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()
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对象。