【发布时间】:2023-04-11 09:41:01
【问题描述】:
我一直在做一个项目,客户应该使用 AWS 将文件上传到云存储中。 我的应用程序是用 ReactJS 编写的,我决定将文件直接从客户端上传到云存储。我已经构建了应用程序并将其部署到服务器。 (这里是链接raymon-tech.ir) 但它会返回
访问 XMLHttpRequest 在 'https://kamal-archive.s3.ir-thr-at1.arvanstorage.com/aaa.js?uploads' 来自原产地“https://raymon-tech.ir”已被 CORS 政策阻止: 对预检请求的响应未通过访问控制检查:它 没有 HTTP ok 状态。
错误。 如果我禁用浏览器的 CORS,它可以正常工作。
更新:
我使用 S3 浏览器来配置存储桶策略和 CORS 配置。 这是我的配置:
CORS 配置:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>Accept-Ranges</ExposeHeader>
<ExposeHeader>Content-Encoding</ExposeHeader>
<ExposeHeader>Content-Length</ExposeHeader>
<ExposeHeader>Content-Range</ExposeHeader>
</CORSRule>
</CORSConfiguration>
和 存储桶策略:
{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetBucketCORS",
"Resource": "arn:aws:s3:::raysa/*"
}
]
}
我最近更改了它们,但没有任何反应。
【问题讨论】:
-
你需要在服务器上配置 cors 访问权限
-
Cross-Post:在此处发布我对此的回答:stackoverflow.com/questions/66370716/…
标签: javascript reactjs amazon-web-services amazon-s3 cors