Rails 5.2 活动存储直接上传失败:缺少 CORS 标头“访问控制-允许源”



我正在试用Rail 5.2.0.rc1 Active Storage,使用其包含的JavaScript库将PDF文档直接从客户端上传到云。但是在提交表单时,我在Firefox和Chrome中都收到浏览器错误:

Cross-Origin Request Blocked... (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

因此设置了标头 this.xhr.setRequestHeader...在 Active Storage 中.js并且似乎不可配置:https://github.com/rails/rails/blob/master/activestorage/app/javascript/activestorage/blob_record.js

有人有什么建议吗?

尝试使用以下方法在 S3 存储桶上设置 CORS 权限:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

请注意,在新的 S3 控制台中,CORS 配置必须是 JSON。 以下内容工作正常:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "GET",
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]

最新更新