带有代理URL的CORSS

时间:2019-03-15 16:56:05

标签: javascript reactjs cross-domain

我正在使用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并返回结果

我该如何解决?任何提示将不胜感激。

1 个答案:

答案 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)))

希望它能对您有所帮助。