我正在使用API开发一个React应用程序。但是,我无法使API正常工作,因此我选择了使用代理URL(https://yacdn.org/proxy/)的CROSS。现在,我可以从API中检索所需的信息,但是一段时间后,我的应用程序崩溃了。 我收到一条错误消息:
通过CORS策略阻止从原点“ https://yacdn.org/proxy/https://apps.des.qld.gov.au/species/?op=getspecies&kingdom=animals&family=Macropodidae”到“ http://localhost:3000”的访存:所请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。
我尝试使用模式:“ no-cors”。我被禁止使用Chrome-extension,并被告知要提出一个后端解决方案,该解决方案只将调用转发(代理)到API并返回结果
我该如何解决?任何提示将不胜感激。
答案 0 :(得分:1)
您可以使用fetch
来实现:
fetch('https://cors.io/?https://apps.des.qld.gov.au/species/?op=getspecies&kingdom=animals&family=Macropodidae',
{
method: 'GET'
})
.then(res => {
res.text().then((s) => console.log(JSON.parse(s)))
})
.catch(error => {
// Handle your error
throw new Error('Failed while checking data from au services:' + error)
})
使用此代理服务器:
https://cors.io/?...
对于响应,将其转换为JSON对象也很重要:
res.text().then((s) => console.log(JSON.parse(s)))
希望它能对您有所帮助。