Amazon web services 当我调用Cloudfront时,它返回403错误,但是连接到Cloudfront的using api gateway url返回正确的结果

Amazon web services 当我调用Cloudfront时,它返回403错误,但是连接到Cloudfront的using api gateway url返回正确的结果,amazon-web-services,amazon-cloudfront,aws-api-gateway,amazon-elastic-beanstalk,Amazon Web Services,Amazon Cloudfront,Aws Api Gateway,Amazon Elastic Beanstalk,我对cloudfront有问题。 以下是我的设想: 1) 我有一个beanstalk url,指向java中的get服务。到目前为止还不错,我可以通过调用:beanstalk url/users/1看到结果 2) 我将我的beanstalk作为http添加到api网关,到目前为止仍然很好,我可以通过调用:api网关url/users/1看到结果 3) 现在我想为我的api网关创建一个自定义域名,因此我遵循以下步骤: 我遵循了这一点,现在我有了一个cloudfront端点,它通过证书连接到我的a

我对cloudfront有问题。 以下是我的设想: 1) 我有一个beanstalk url,指向java中的get服务。到目前为止还不错,我可以通过调用:beanstalk url/users/1看到结果

2) 我将我的beanstalk作为http添加到api网关,到目前为止仍然很好,我可以通过调用:api网关url/users/1看到结果

3) 现在我想为我的api网关创建一个自定义域名,因此我遵循以下步骤:

我遵循了这一点,现在我有了一个cloudfront端点,它通过证书连接到我的apigateway部署阶段。请看图片:

现在,当我尝试这个:

我得到:

Failed to load https://de90lotelw3hx.cloudfront.net/users/1: Response to 
 preflight request doesn't pass access control check: No 'Access-Control-
 Allow-Origin' header is present on the requested resource. Origin 
 'https://s.codepen.io' is therefore not allowed access. The response had 
 HTTP status code 403.

只是为了澄清,我确实检查了api网关部署的url,但没有收到此错误,因此这意味着在apigateway中启用了COR。所以,当我使用cloudfront和certificate时,我需要附加任何头吗?有什么想法吗?

听起来好像您没有在api网关中启用CORS头

选择资源(/users/{id}),单击操作按钮,然后从下拉列表中选择启用CORS。默认设置(显示在屏幕截图中)为通配符/所有域。单击“启用CORS..”按钮进行确认

这将在响应中发送CORS头,并允许跨域请求从web应用程序发送到s.codepen.io

最后,不要忘记在进行更改后部署stage


您应该用来调用API的自定义域名是您已删除的:API.stg2等,de90。。。是“内部”ù吗