【发布时间】:2019-04-18 16:23:34
【问题描述】:
我正在尝试使用 Angular 客户端将文件上传到 Amazon S3。我使用 NodeJs 应用程序服务器生成了预签名 URL。将文件上传到预签名 URL 时,出现错误:
“对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“http://localhost:4200”。”
我已将以下 CORS 配置添加到我的存储桶权限中。
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
【问题讨论】:
-
您的存储桶在云端吗?如果是这样,请确保允许 OPTIONS 并且您将标头列入白名单。
-
@MisterSmith - 在 S3 或 CloudFront 中,您在哪里允许 OPTIONS?与白名单相同
-
我在我的 ReactJS 应用程序中遇到了同样的问题。
标签: amazon-web-services amazon-s3 cors aws-sdk