Javascript 使用S3的React应用程序中的CORS原点错误

Javascript 使用S3的React应用程序中的CORS原点错误,javascript,reactjs,amazon-web-services,amazon-s3,cors,Javascript,Reactjs,Amazon Web Services,Amazon S3,Cors,我一直在做一个项目,客户应该使用AWS将文件上传到云存储中。 我的应用程序是用ReactJS编写的,我决定将文件直接从客户端上传到云存储。我已经构建了应用程序并将其部署到服务器。(这里是链接) 但它又回来了 访问位于的XMLHttpRequest 'https://kamal-archive.s3.ir-thr-at1.arvanstorage.com/aaa.js?uploads' 源于https://raymon-tech.ir'已被CORS策略阻止: 对飞行前请求的响应未通过访问控制检查:

我一直在做一个项目,客户应该使用AWS将文件上传到云存储中。 我的应用程序是用ReactJS编写的,我决定将文件直接从客户端上传到云存储。我已经构建了应用程序并将其部署到服务器。(这里是链接) 但它又回来了

访问位于的XMLHttpRequest 'https://kamal-archive.s3.ir-thr-at1.arvanstorage.com/aaa.js?uploads' 源于https://raymon-tech.ir'已被CORS策略阻止: 对飞行前请求的响应未通过访问控制检查:它 没有HTTP ok状态

错误。 如果我禁用浏览器的CORS,它可以正常工作

更新:

我使用S3浏览器配置Bucket策略和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>

我最近更改了它们,但没有发生任何事情。

如果您需要将文件直接从前端应用程序上载到S3 bucket,请确保将这些文件添加到bucket的CORS策略中:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "POST",
            "PUT",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag",
            "Accept-Ranges",
            "Content-Encoding",
            "Content-Length ",
            "Content-Range"
        ],
        "MaxAgeSeconds": 3000
    }
]

您需要在服务器上配置cors访问权限Cross Post:在此处发布了我的答案:这是否处理飞行前的选项?由于存在飞行前选项,我使用S3浏览器配置CORS配置和存储桶策略。@AliEsmailpor您在那里设置了CORS配置吗?是的,我按照问题中的说明进行了设置。对吗?
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "POST",
            "PUT",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag",
            "Accept-Ranges",
            "Content-Encoding",
            "Content-Length ",
            "Content-Range"
        ],
        "MaxAgeSeconds": 3000
    }
]