我在 S3 上部署了一个 React 应用程序,在 EC2 上部署了一个 Spring Boot API,并使用 CloudFront 作为 CDN。虽然我可以通过 CloudFront 访问静态内容(HTML、CSS),但我无法获取 API 数据。这是我的设置:
当我在邮递员中向 ec2 服务器发送请求时,它运行良好。但是当我向cloudfront域发送请求时,
我可以访问 CloudFront 域 URL,并且可以查看 HTML 和 CSS 文件,但看不到 API 数据
我在 s3 中设置 CORS 配置如下
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"ETag",
"Access-Control-Allow-Origin"
],
"MaxAgeSeconds": 3000
}
]
我创建了 OAC 策略来阻止直接发送到 s3 的请求。仅可通过 Cloudfront 请求。
它看起来不像 CORS 错误,因为它是访问被拒绝错误。获取 API 数据需要什么设置吗?
对于请求id,请检查cloudfromt访问日志。那应该可以为您提供更多详细信息。
此外,检查 cloudfront 中定义的行为,您的请求似乎被路由到 S3 ,并且从那里拒绝访问。