@Treniki

Почему не работает jQuery.getJSON()?

Здравствуйте. Пытаюсь разобраться с API "OpenWeatherMap". Суть в том, что с помощью этого API, текущей позиции (широта и долгота) и API Key, можно получить ссылку на JSON файл, в котором будет необходимая информация о погоде, которую в последующем можно обрабатывать JS и вытаскивать нужные данные, собственно, что я и пытаюсь сделать.

Создав корректную ссылку к JSON файлу, я всё равно не могу достать из него информацию. Как будто файл не парсится. jQuery подключен. В div с классом "section" выводится только "START". В чем может быть проблема? Может, проблема из-за того, что нет какого-либо колбэка или из-за того, что расширение "json" к url не добавил (с ним бьёт ошибку)?

Ссылка на иформацию
Расширение файла по умолчанию - JSON
Тестовая ссылка с данными

$(document).ready(function() {
	getWeather();
});

//Weather API
var apiKey = "1b258d0bf4fbcf528bf63f958dacd551";

//Get geo-location data then get weather data
function getWeather() {
	var html = '<p>START</p><br>'

	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(function(position) {
			//Set url JSON file with current position
			var url = 'api.openweathermap.org/data/2.5/weather?lat=' + position.coords.latitude + '&lon=' + position.coords.longitude + '&appid=' + apiKey;

			//Get JSON data from file
			$.getJSON(url, function(data) {
				$.each(data, function(key, val) {
					html += '<p>Key: ' + key + ' Val: ' + val + '</p><br>';
				});
			});
		});
	};

	$('.section').html(html);
};


UPD #1.
Пример на JSFiddle с выводом генерируемого url для проверки корректности ссылки (Скопируйте и вставьте в адресную строку)
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Дубль два: getCurrentPosition() и getJSON() — асинхронные методы.
$('.section').html(html); выполняется до того, как получен ответ от сервера. Этот ответ, соответственно, просто игнорируется. Как решить проблему я вам написал в прошлом вопросе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы