天气API请求CORS错误

4

我正在尝试从Dark Sky API获取天气数据,但是一直收到CORS错误。

这是我的代码:

var url = `https://api.darksky.net/forecast/febb2871126cd24613f32a79c32d4158/${lat},${lon}`;
axios.get(url, config).then(response => {
    this.setState({
        ...
    })
}).catch(function (error) {
    console.log(error);
});

我遇到了一个错误:"XMLHttpRequest无法加载https://api.darksky.net/forecast/febb2871126cd24613f32a79c32d4158/38.5815719,-121.4943996。所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,源'https://ebcperez.github.io'不允许访问。"

如果服务器不允许跨域资源共享,您将会遇到这个问题。 - Jaromanda X
请在Chrome中检查它,IE对CORS有严格要求。 - ling7334
@ling7334 - 所有浏览器都对CORS进行了严格的限制 - 在Chrome中有一个设置可以关闭CORS逻辑,但以那种方式运行浏览器意味着您已经向所有已知的90年代漏洞敞开了系统。 - Jaromanda X
3个回答

3

2
看起来Darksky API服务器不允许CORS,因此您将无法从浏览器发出此请求。
一个可能的解决方案是从应用程序服务器发出API请求,然后在前端仅显示它。

0

你能详细说明一下吗?你说“这里有一个为什么会发生这种情况的解释”,但我没有看到实际的解释。 - Branco Medeiros
嘿,这个解决方案对我不起作用,请帮忙。 - mamadgi aishwarya
你可以分享一下你的代码片段,特别是你遇到了哪些错误吗? - Banny
1
@Banny,从其他网站的某人的答案中复制并粘贴每个单词并不是帮助解决问题的好方法。 - adamr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接