Ajax-запрос к включенному JSON — readystate 4, статус 0

Я выполняю запрос 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"}
]
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
395
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте xhr.onreadystatechange вместо xhr.onload, а также переместите xhr.open и xhr.send наверх xhr.onload. Дайте мне знать, если это работает.

Благодарю за ваш ответ! У меня все еще есть те же журналы, поэтому состояние готовности 4 и проблема в состоянии 0, пустой текст ответа..

Niels Vanwingh 01.06.2019 15:08
Ответ принят как подходящий
  1. вам нужно создать проект javaweb, а затем настроить сервер tomcat

  2. поместите все файлы в проект javaweb, а затем запустите сервер tomcat

  3. открыть тип браузера, например: http://локальный:8080/javaweb/test.html

потому что xhr.open('GET','json/options_form.json',true); не может запросить локальный файл, должен запросить файл сервера

Спасибо Вереджава, это мне очень помогло! Я посмотрел немного дальше в Интернете и обнаружил, что есть еще один способ сделать это с помощью FileReader(). Этот объект позволяет приложениям читать локально хранящиеся файлы. developer.mozilla.org/en-US/docs/Web/API/FileReader

Niels Vanwingh 03.06.2019 00:14

Другие вопросы по теме