【发布时间】:2022-06-29 20:43:00
【问题描述】:
我已将 S3 配置为只能通过 CloudFront 访问并使用 lambda 保护。问题是由于预检调用失败,我无法从 SPA 访问文件。当使用 Postman GET 调用进行测试时,会返回一个正确设置了 CORS 标头的对象,但 OPTIONS 返回 403。
我的配置: S3 CORS
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE",
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]
CloudFront 配置
Lambda@Edge
我还有一个简单的 lambda,它检查请求中包含的 JWT 令牌。 lambda 配置:
结果:
邮递员获取:
邮递员选项:
消息:“CORSResponse:不允许此 CORS 请求。这通常是因为资源的 CORS 规范未将 Origin、请求方法/Access-Control-Request-Method 或 Access-Control-Request-Headers 的评估列入白名单。”
我尝试了许多混合和匹配缓存策略、源请求策略和响应标头策略的变体,来自不同教程和其他堆栈溢出帖子,但似乎没有任何帮助。
我将非常感谢您的帮助,因为我在一段时间内一直在努力解决此问题,谢谢!
【问题讨论】:
-
想知道你是否解决了这个问题?
标签: amazon-web-services amazon-s3 cors amazon-cloudfront http-options-method