我正试图在我的纯React中使用fetch
来获取股票的价格。当我使用fetch(url)
尝试在没有选项或配置的情况下获取信息时,会出现以下错误:
Access to fetch at 'https://query1.finance.yahoo.com/v8/finance/chart/RCF.BO' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
API:https://query1.finance.yahoo.com/v8/finance/chart/<SYMBOL>.BO
是开放的。我似乎没有任何问题,从我的浏览器直接获取它。即使我将此选项包含到fetch中,也会引发相同的问题:
var options = {
method: 'GET',
crossorigin: true,
headers: {
'Access-Control-Allow-Origin': '*',
}
}
根据我的知识和研究,我所犯的错误是很常见的。但所提出的解决方案涉及更改服务器配置和允许不同的来源,这些不适用于我,因为我正在使用的API是开放的。我不是使用任何后端,而是纯粹的反应。
使用no-cors
也不起作用,因为我需要数据是可见的,这样我才能使用它。我在开发阶段使用了一些第三方扩展,但现在在托管时,它没有从API中获取数据。
有人能帮忙解决这个问题吗?
发布于 2022-12-01 16:18:32
你不能凭它的声音
您试图获得的API有自己的CORS策略集,它不允许您发出请求。
我不想让你看到医生。但这是医生。
发布于 2022-12-01 16:25:35
雅虎页面禁止通过CORS从外部请求。CORS是一种基于浏览器的技术.在这种情况下,CORS阻止信息嵌入到其他网页中。在浏览器之外,例如通过卷曲,页面可以被查询。
https://stackoverflow.com/questions/74644603
复制相似问题