S3 请求的资源上不存在“Access-Control-Allow-Origin”标头

问题描述 投票:0回答:1

我正在使用 JavaScript AWS SDK 将文件上传到 S3

const AWS = window.AWS;
AWS.config.update({
    accessKeyId: this.credentials.AccessKeyId,
    secretAccessKey: this.credentials.SecretAccessKey,
    region_config: "us-west-1",
    sessionToken: this.credentials.SessionToken
});

let s3 = new AWS.S3({
    signatureVersion: "v4"
});
if (this.selectedFilesToUpload) {
    s3.upload(
        {
            Key: 'Files/068VC000001DrynYAC006VC000004zSwSDGF.pdf',
            Bucket: 'xxxxx',
            ContentType: 'application/pdf',
            Body: this.selectedFilesToUpload
        },
        err => {
            if (err) {
                console.error(err);
            } else {
                console.log("Success");
            }
        }
    );
}

但我收到 CORS 错误:

从来源“https://yyyyy.salesforce-experience.com”访问“https://xxxxx.s3.amazonaws.com/Files/068VC000001DrynYAC006VC000004zSwSDGF.pdf”处的 XMLHttpRequest 已被 CORS 策略阻止:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我已经更新了S3存储桶CORS设置,但没有任何结果:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "HEAD",
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "Access-Control-Allow-Origin"
        ]
    }
]
amazon-s3 aws-sdk-js
1个回答
0
投票

要使

Access-Control-Allow-Origin
正常工作,您需要指定您允许的域。你可以尝试:

"ExposeHeaders": [
            "Access-Control-Allow-Origin: 'https://yyyyy.salesforce-experience.com"
        ]
© www.soinside.com 2019 - 2024. All rights reserved.