我正在尝试使用预先签名的 URL 将文件上传到 S3 存储桶。但是,只有 txt 上传有效,其他类型会引发 CORS 错误。
从原点 Y 在 X 获取数据的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头
我确实有 CORS 配置设置,以允许来源、标头和其他常规内容。但我似乎无法理解为什么 txt 有效但其他类型不起作用。我在 url 生成期间指定内容类型,并在发送 PUT 请求时传递它。
您需要修改存储桶上的跨源资源共享(CORS)。它位于存储桶的权限选项卡中,一直位于底部。
这是一个示例配置
[
{
"AllowedHeaders": [
"Authorization"
],
"AllowedMethods": [
"GET",
"POST",
"HEAD",
"PUT",
"POST"
],
"AllowedOrigins": [
"https://www.example.com",
"https://subdomain.example.com"
],
"ExposeHeaders": [
"Access-Control-Allow-Origin"
]
}
]