为什么会出现通用“ TypeError:无法提取”错误?

时间:2020-07-23 11:12:12

标签: javascript reactjs api

从某些API获取信息时,出现TypeError: Failed to fetch错误。

例如,下面的代码段中使用的URL是API提供程序提供的示例。无需钥匙即可访问。它可以在我的浏览器中正常工作,但会在我的代码中引发错误。

从另一个公共API https://api.punkapi.com/v2/beers/random抓取效果很好。

这些API之间的区别是什么,它们使我无法从某些API中获取并为其他人使用?

export default function App() {
  useEffect(() => {
    fetch(
      'https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=439d4b804bc8187953eb36d2a8c26a02'
    )
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => {
        console.error(error);
      });
  }, []);

  return null;
}

1 个答案:

答案 0 :(得分:1)

您无法从样本中获取数据 由于缺少CORS标头“ Access-Control-Allow-Origin”而导致API被阻止

您需要生成api密钥(https://openweathermap.org/price)并连接到api

//ex:
api.openweathermap.org/data/2.5/weather?appid={your api key}&....