React-axios-被CORS策略阻止。如何解除封锁

时间:2018-12-23 23:06:32

标签: reactjs cors axios

我正在运行一个简单的API请求,以将数据返回到我编写的简单API搜索中。我说这是简单的API调用,因为不需要身份验证,我可以在python中非常简单地完成它。

但是,在React中使用Axios时遇到问题。

代码:

 axios.get('https://www.keyforgegame.com/api/decks/59554ab7-b414-4220-8514-408a0dbf572d')

我尝试在这里看,每个人都听起来很简单,但是我似乎什么也没做。我已经尝试过了。

axios.get('https://www.keyforgegame.com/api/decks/59554ab7-b414-4220-8514-408a0dbf572d', { crossDomain: true })

axios.get('https://www.keyforgegame.com/api/decks/59554ab7-b414-4220-8514-408a0dbf572d, {
        headers: {
          'Access-Control-Allow-Origin': true,
        },
        })

但是我不断收到类似的错误 Access to XMLHttpRequest at 'https://www.keyforgegame.com/api/decks/59554ab7-b414-4220-8514-408a0dbf572d' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我是否需要在标题中添加一些内容才能使其正常工作?还是我需要在反应中进行某种设置。

帮助!

1 个答案:

答案 0 :(得分:1)

您只是不能从客户端覆盖CORS检查。只是不能。 CORS是安全功能,如果仅将其禁用就没有意义。

有不同的方法。

  1. 取决于您的话语

      

    我说这是简单的API调用,因为不需要身份验证,我可以在python中非常简单地完成它。

    我相信您只需要确保没有发送额外的标头,因此请求将变为simple in meaning of CORS。在axios站点上,我发现了几种删除特定请求的额外标题的方法:

    a。由specifying headers explicitly

    b。或通过创建different axios instance而不提供Authorization标头或任何强制运行CORS的方式

  2. 制作要在您的域上运行的代理

  3. 将后端列入您的域名白名单,并在Access-Control-Allow- Origin响应标头中列出
相关问题