gpt4 book ai didi

javascript - 在 React 中访问 API JSON 数据

转载 作者:行者123 更新时间:2023-11-30 14:16:54 26 4
gpt4 key购买 nike

我正在尝试通过使用 ip-api 获取用户当前的纬度和经度并将其传递到 darksky api URL 以获取天气 JSON 数据来构建天气应用程序。我的经纬度日志记录正常,但 Darksky 调用出现以下错误。尝试从一个 API 提取数据并使用另一个 API 是不是做错了什么?还是我正在尝试这样做?

-GET 'dark sky api url' 401

-访问“https://api.darksky” ....' 来自原点' http://localhost:3000 ' 已被 CORS 策略阻止

getLocation = async (e) => {
e.preventDefault();
const api_call = await fetch("http://ip-api.com/json");
const data = await api_call.json();
console.log(data.lat, data.lon);
let lattitude = data.lat;
let longitude = data.lon;

const weather_call = await fetch(`https://api.darksky.net/forecast/${API_KEY}/${lattitude},${longitude}`);
const weather_data = await weather_call.json();
console.log(weather_data);
}

render() {
const {to, getLocation, ...rest} = this.props;
return (
<div className="App">
<Landing getLocation={this.getLocation}/>
</div>
);

}

最佳答案

当我尝试调用 API 时,为什么会收到请求的资源上不存在“Access-Control-Allow-Origin” header 的错误消息?在 Dark Sky,我们非常重视安全。作为安全预防措施,我们在我们的服务器上禁用了跨源资源共享 (CORS)。

您的 API 调用包括您的 secret API key 作为请求的一部分。如果您要从面向客户的代码进行 API 调用,任何人都可以提取和使用您的 API key ,这将导致您必须支付账单。我们禁用 CORS 以帮助保密您的 API key 。

为防止 API key 被滥用,您应该设置一个代理服务器来在后台调用我们的 API。然后,您可以在不公开您的 API key 的情况下向您的客户提供预测。

你可以在这里搜索https://darksky.net/dev/docs/faq

关于javascript - 在 React 中访问 API JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com