Как сохранить полученные данные из JSON

158
31 июля 2018, 15:20

Имеется код, который получает json при помощи XMLHttpRequest. Полученные данные сохраняются в переменную loadedData при вызове соответствующего слушателя.

Возможно ли записать полученный объект в переменную data?

var URL = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json'; 
 
var data; 
 
  var xhr = new XMLHttpRequest(); 
  xhr.responseType = 'json'; 
 
 
  var xhrLoadHandler = function() { 
    var loadedData = xhr.response; 
  } 
 
  xhr.addEventListener('load', xhrLoadHandler); 
 
  xhr.open('GET', URL); 
  xhr.send();

Answer 1

Ваш XML-HTTP запрос настроен как асинхронный (Скрипт не дожидается ответа от сервера и продолжает выполнятся).

Это означает, что когда будет получен ответ от сервера, переменная data уже не будет существовать.

Измените xhr.open('GET', URL); на xhr.open('GET', URL, false); чтобы запрос был синхронным (Скрипт не будет выполнятся дальше, пока не получит ответ от сервера).

var URL = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json'; 
 
var data; 
 
var xhr = new XMLHttpRequest(); 
 
var xhrLoadHandler = function() { 
     data = JSON.parse(xhr.responseText); 
}; 
 
xhr.addEventListener('load', xhrLoadHandler); 
 
xhr.open('GET', URL, false); 
xhr.send();

READ ALSO
regExp js не работает

regExp js не работает

Почему не работает данное регулярное выражение в js скрипте ???

193
Отладка JS в браузере

Отладка JS в браузере

Есть у меня HTML страница, к которой подключен js-код как внутренний, так и внешний

179
Как найти первый символ массива? [закрыт]

Как найти первый символ массива? [закрыт]

Как найти первый символ массива?

178
Почему не работает else в условии if? [закрыт]

Почему не работает else в условии if? [закрыт]

Также при вводе значений, отличных от заданных в if и else if, выполняется условие else if

165