#javascript #html #jquery #json
#javascript #HTML #jquery #json
Вопрос:
я создал div с идентификатором ‘temporary’, чтобы я мог вставлять данные из openweathermap.org API, но я получаю ошибку на консоли, и я не знаю почему. Я новичок в загрузке данных из API. вот полный HTML-код jsfiddle code здесь
вот сценарий, в котором произошла ошибка
var data;
$("form").click(function(evt){
evt.preventDefault();
loadJson();
});
function loadJson(){
loadJson("https://samples.openweathermap.org/data/2.5/find?q=Londonamp;appid=b7e1c74ddc5f04e3e18d2ce29e5d432camp;units=metric", displayData);
};
function displayData(temp){
data = temp;
$("#temporary").html(data);
};
</script> ```
Комментарии:
1. [1]
loadJson
вызывает [2]loadJson
, затем [2]loadJson
вызывает [3]loadJson
бесконечно. Это цикл инициализации.2. как я могу это исправить?
3.
loadJson
является бесконечно рекурсивным. Как вы думаете, что он должен делать?
Ответ №1:
Ваша функция loadJson вызывает саму себя, пока ваш стек не превышен.
Перепишите эту функцию так, чтобы она загружала json и не вызывала себя бесконечно
Комментарии:
1. что я могу сделать, чтобы я мог правильно загружать данные из API
2. Вы можете выполнить загрузку json любым способом — xhr, выборку, подключение к сокету и т.д.
Ответ №2:
Вам следует использовать другое имя
var data;
$("form").click(function(evt){
evt.preventDefault();
anotherNameForLoadJson();
});
function anotherNameForLoadJson(){
loadJson("https://samples.openweathermap.org/data/2.5/find?q=Londonamp;appid=b7e1c74ddc5f04e3e18d2ce29e5d432camp;units=metric", displayData);
};
function displayData(temp){
data = temp;
$("#temporary").html(data);
};