-2

在此处输入图像描述

var path = "http://api.openweathermap.org/data/2.5/find?q=";
var city = "London";
var apiKey= "&appid=eb5eacd85411228f461a151003d9bf07";
var url = path + city+ apiKey;



function getTemp(){
fetch(url)
.then(response => response.json())
.then(data => {
  var nameValue= data.name;
  var tempr = data.main.temp;
  document.querySelector("h1").innerHTML= nameValue;
  document.querySelector("h2").innerHTML= tempr;


})}
getTemp();

运行此代码时出现错误。请帮我解决这里的问题。

4

2 回答 2

-1

此 API 上的响应结构不data.main.temp直接返回,此 api 的顶层返回

"message": message,
  "cod": cod,
  "count": count,
  "list": [{"main": {"temp"}}]

因此,要访问 temp,您应该导航到列表或直接访问您想要的记录,例如data.list[index].main.tempindex 可以是 0 或者取决于您确定的列表大小data.count

于 2021-04-28T11:47:14.257 回答
-2

我认为这(data.main)可能不是来自响应。尝试控制台记录整个响应,并检查响应是否到来。

fetch(url) .then(response => response.json()) .then(data => console.log(data))

于 2021-04-28T11:41:10.363 回答