OpenWeatherMap returns 未定义

OpenWeatherMap returns undefined

OpenWeatherMap returns 未定义。 我认为我的代码有问题(不是 API 或 API 键或其他东西)。因为当我打开浏览器并转到 https://api.openweathermap.org/data/2.5/weather?lat=[lon]&lon=[lon]&appid=bc12083e70d2d22298c2df1cec7101d9&units=metric(括号是私人数据)时,它是 returns 数据。我的代码有什么问题?

这是我的代码:

navigator.geolocation.getCurrentPosition(pos => {
    const lat = pos.coords.latitude;
    const lon = pos.coords.longitude;
    fetch(
        `https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=bc12083e70d2d22298c2df1cec7101d9&units=metric`
  ).then(response => {
     return response.json();
  }).catch(err => {
     console.log(`Error: ${err}`)
  })
});

确保我们在调用 API 请求之前为纬度和经度传递正确的值并使用适当的 return

navigator.geolocation.getCurrentPosition(pos => {
    let lat = pos.coords.latitude;
    let lon = pos.coords.longitude;
    
fetch(`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid={apikey}&units=metric`)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
});

朋友,你的 API 调用是正确的,它正在返回结果,而 latlon 被硬编码传递给它。可能是navigator取值有问题

每当您遇到 API 呼叫问题时,我建议您使用 Postman 软件来查看它是否正常工作。