AWS API 调用被 CORS 策略阻止

时间:2021-03-25 12:53:57

标签: reactjs amazon-web-services rest axios cors

我创建了一个 DynamoDB 表并向其附加了 3 个 lambda 函数。我试图通过将 API 网关触发器附加到它们来调用这些函数。我创建了一个 Rest API,然后创建了 get 方法。之后,我部署了 API,API 链接按预期工作。我现在正在尝试使用 React 中的 Axios 调用 API。

axios.get("Link")
  .then(res => {
    console.log(res);
  })

问题是,每当我尝试在本地服务器上运行它时,都会出现以下错误。

Access to XMLHttpRequest from origin 'http://localhost:3000' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource.

我已经尝试在 API 网关上启用 CORS,但这也不起作用。我知道问题出在后端的某个地方,但我不知道我应该做什么。

2 个答案:

答案 0 :(得分:-1)

尝试在禁用 CORS 安全性的情况下打开 chrome。

Mac 操作系统:

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

答案 1 :(得分:-1)

如果您启用了 CORS,那么这是预期的行为。除非另行配置,否则 CORS 将不允许其他域访问您的 API。

从此处查看如何在 API-Gateway 上正确配置 CORS:https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

对于您的开发/测试/学习环境,您可以禁用* CORS,然后您可以从本地主机调用 API。

关于 API Gateway CORS 问题的更多故障排除: https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-cors-errors/

*基于安全理由不建议使用