我正在按照以下说明在我的AWS网站上设置联系表单:https://aws.amazon.com/en/blogs/architecture/create-dynamic-contact-forms-for-s3-static-websites-using-aws-lambda-amazon-api-gateway-and-amazon-ses/
从网站调用函数时出现CORS错误:
Failed to load https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/contactform1: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access.
Lambda函数在测试时可以正常工作,我确实激活了CORS并在API Gateway中部署了API。我还在S3存储桶中配置了CORS,允许GET和HEAD方法以及授权标头。
我不确定错误是从哪里来的,我猜是我正在使用Cloudfront通过https提供我的内容,但是我无法正确配置它来使用lambda。我试图在Cloudfront中关联lambda函数,但它要求我的函数位于“ us-east-1”区域,因为我的存储桶位于欧盟区域,因此lambda必须与桶。
错误是否来自Cloudfront?在Cloudfront中关联lambda函数是否必要?我的配置有什么问题?