Я выполняю запрос Ajax GET для файла JSON, включенного в мой веб-сайт. Таким образом, файл JSON включается в отдельный лист. Состояние готовности запроса — «4», а состояние — «0». Итак, запрос отправлен, но текст ответа пуст.
Я проверил данные JSON. Файл javascript возвращает данные там, где они должны быть на странице HTML5. Обработка ошибок дает состояние готовности "4" и статус "0".
Это код файла javascript, данные JSON верны и проверены. Соединение HTML5 также работает должным образом, проверено. Файл javascript вставляет данные о правильном элементе в HTML..
Может ли кто-нибудь заметить ошибку? Всем спасибо!
var xhr = new XMLHttpRequest(); //create Request Object
xhr.onload = function(){ //when the Request is loaded, parse it in a responsetext
if (xhr.status === 200){
var responseObject = JSON.parse(xhr.responseText);
var newContent ='';
for (var i=0; i<responseObject.events.length; i++){
newContent += responseObject.events[i].color;
newContent += responseObject.events[i].value;
}
document.getElementById("jsonreturn_option").innerHTML = newContent;
}
else{
document.getElementById("jsonreturn_option").innerHTML = xhr.readyState + " " + xhr.status ;
//readystate is 4, which means that the request has been sent..
//request status is 0, which means that the responsetext is empty..
}
};
xhr.open('GET','json/options_form.json',true);
xhr.send(null); //no additional data to be sent
Файл данных JSON
{
"events":[
{ "color": "red", "value": "#f00"},
{ "color": "green", "value": "#0f0"},
{ "color": "blue", "value": "#00f"},
{ "color": "cyan", "value": "#0ff"}
]
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте xhr.onreadystatechange вместо xhr.onload, а также переместите xhr.open и xhr.send наверх xhr.onload. Дайте мне знать, если это работает.
вам нужно создать проект javaweb, а затем настроить сервер tomcat
поместите все файлы в проект javaweb, а затем запустите сервер tomcat
открыть тип браузера, например: http://локальный:8080/javaweb/test.html
потому что xhr.open('GET','json/options_form.json',true); не может запросить локальный файл, должен запросить файл сервера
Спасибо Вереджава, это мне очень помогло! Я посмотрел немного дальше в Интернете и обнаружил, что есть еще один способ сделать это с помощью FileReader(). Этот объект позволяет приложениям читать локально хранящиеся файлы. developer.mozilla.org/en-US/docs/Web/API/FileReader
Благодарю за ваш ответ! У меня все еще есть те же журналы, поэтому состояние готовности 4 и проблема в состоянии 0, пустой текст ответа..