#javascript #geolocation #weather-api
Вопрос:
Это мой первый раз, когда я работаю с API. Это будет частью более масштабного практического проекта, но я немного застрял. Во-первых, я хочу, чтобы мой код определял местоположение пользователя, получал высоту и долготу, а затем с помощью этого вызывал API OpenWeather и регистрировал температуру, влажность и описание консоли. Моя проблема, похоже, в том, что моя ссылка не работает… кто-нибудь может помочь мне объяснить, что я делаю не так? (Ключ Api здесь удален)
/*Geolocation*/ let latUser = [] let lonUser = [] const errorCallback = (error) =gt; {console.error(error)} const successCallback = (position) =gt; { latUser.push(position.coords.latitude) lonUser.push(position.coords.longitude)} navigator.geolocation.getCurrentPosition(successCallback, errorCallback) /*Weather*/ let weather = { "apiKey": "xxx", fetchWeather: function () { fetch("api.openweathermap.org/data/2.5/weather?lat=" latUser[0] "amp;lon=" lonUser[0] "amp;appid=" this.apiKey ).then((response) =gt; response.json()) .then((data) =gt; this.displayWeather(data)) }, displayWeather: function(data){ const { temp, humidity } = data.main const { description } = data.weather console.log (temp, humidity, description) } }
Комментарии:
1. Вероятно, вы неправильно передаете асинхронный аспект геолокации здесь (хотя трудно сказать, потому что вы показали нам только свой
weather
объект, но не то, где вы на самом деле вызываете егоfetchWeather
метод).2. вам нужно будет поставить https:// перед вашим URL — адресом-в противном случае браузер будет думать, что это относительный URL
3. Прости! Я просто хочу пока вызвать его в консоли. Похоже, что добавление https:// до того, как URL исправил это, большое вам спасибо! Моя вина.