OpenWeatherMapAPI Geolocation через LAT LONG не работает или не печатает

108
8

Я использую URL-адрес API и удаляю переменные и вставляю значения LAT и LONG в браузер, и он работает. Но когда он используется в коде с переменными LAT и LONG, он не работает.

Я уже упоминал о существующих вопросах здесь и здесь

Я использую аналогичный, если не идентичный синтаксис, чтобы успешно вытащить и распечатать значения LAT и LONG, а затем сохранить переменные. Я вставляю переменные в URL-адрес API, но не печатает. Я не знаю почему.

Благодарю!

Это мой HTML

<html>
<head>
<meta charset="UTF-8">
<title>Today Weather | Malvin</title>
</head>

<body>

<p id="geoLoc"></p>

<p id="currTemp"></p>

</body>
</html>

И это мой JS/JQuery

//geolocation via freecodecamp exercise
$(document).ready(function(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
$("#geoLoc").html("latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude);
});
}

//jquery current weather via openweathermapp
var lat = position.coords.latitude;
var long = position.coords.longitude;
var weatherURL = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&APPID=********f4144190680fc96bd357451d";
$.getJSON(weatherURL, function(data)
{
$('#currTemp').html("current temp: " + data.main.temp);
});
});

спросил(а) 2021-01-25T19:29:23+03:00 5 месяцев назад
1
Решение
63

Поскольку вы выполняете асинхронный вызов через.getJSON, вам нужно использовать функцию обратного вызова в форме "done" или вы можете определить свою собственную функцию обратного вызова. Например: вы можете использовать "done" в качестве обратного вызова вашего асинхронного вызова, как показано ниже.

$.getJSON(weatherURL).done(function(data){
$('#currTemp').html("current temp: " + data.main.temp);
});

Функция, определенная done, будет выполнена, когда ваш вызов AJAX будет успешным.

ответил(а) 2021-01-25T19:29:23+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема