繁体   English   中英

AWS Api Gateway 403错误-从所有来源启用CORS

[英]AWS Api Gateway 403 error - CORS enabled from all origins

我创建了一个lambda函数,可以通过API网关进行访问。 但是,每当发出发布请求时,都会出现以下错误

在此处输入图片说明

当我导航到控制台并查看API Gateway时,

在此处输入图片说明

最后,我的代码(Angular2)确实通过以下方式将适当的标头添加到请求中:

var headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');

this.http.post('https://execute-api.us-east-1.amazonaws.com/prod/LambdaFunction', this.email, { headers: headers })
  .subscribe(data => console.log(data),
    err => console.log(err));

任何想法如何解决这个问题?

好像您在打错灌木丛。

您不能在403上启用CORS,因为这是由APIGateway发送的。 问题是您正在尝试访问APIGateway无法访问的URL。

如果您的URL正确并且POST有效,那么在CORS呼叫中您仍然会收到200 OK,但是您将无法访问收到的内容。 (这是浏览器的标准,以避免在没有返回头的有效许可的情况下进行CORS调用)

我遇到了同样的错误,并通过以下路径解决了该问题:

  • 启用CORS选项可在响应中添加“ Access-Control-Allow-Origin”:“ *”标头。 不要将身份验证器添加到选项资源。
  • 将插件添加到Web浏览器以覆盖浏览器的cors设置。 (仅用于在浏览器上进行测试。当应用在文件系统上运行时,您不需要这样做)
  • 检查您的请求网址/端点,以确保可以。

先尝试一下

  1. 启用CORS选项可在响应中添加“ Access-Control-Allow-Origin”:“ *”标头。 不要将身份验证器添加到选项资源。
  2. 将插件添加到Web浏览器以覆盖浏览器的cors设置。 (仅用于在浏览器上进行测试。当应用在文件系统上运行时,您不需要这样做)
  3. 检查您的请求网址/端点,以确保可以。

如果无法从上方解决此问题,请使用以下选项。 就我而言,请按以下步骤解决。

  1. 在默认4XX响应中添加Access-Control-Allow-Origin:*。 (请参阅下图。)
  2. 重新部署API。

    在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM