AWS Javascript SDK CORS错误

AWS Javascript SDK CORS错误,javascript,amazon-web-services,amazon-s3,cors,Javascript,Amazon Web Services,Amazon S3,Cors,我在浏览器中使用AWS SDK for JavaScript,使用S3。在下面的代码中,第一个调用getSignedUrl工作正常,但对getObject的第二个调用失败,出现CORS错误-访问控制Allow origin不允许使用origin 有人知道我犯了什么明显的、简单的、愚蠢的错误吗 AWS.config.update({accessKeyId: 'AAAAAAAAAAAA', secretAccessKey: 'ZZZZZZZZZ'}); var s3 = new AWS.S3();

我在浏览器中使用AWS SDK for JavaScript,使用S3。在下面的代码中,第一个调用getSignedUrl工作正常,但对getObject的第二个调用失败,出现CORS错误-访问控制Allow origin不允许使用origin

有人知道我犯了什么明显的、简单的、愚蠢的错误吗

AWS.config.update({accessKeyId: 'AAAAAAAAAAAA', secretAccessKey: 'ZZZZZZZZZ'});
 var s3 = new AWS.S3();
 var params = {Bucket: 'myBucket', Key: 'path/to/this/file.json'};

//this works...
 var url = s3.getSignedUrl('getObject', params);
 console.log(url);

//this doesn't...
 var obj = s3.getObject(params, function (error, data) {
  if (error) {
    console.log(error); // an error occurred
 } else {
    console.log(data); // request succeeded
}
});

这可能是您的浏览器说,由于,它无法向S3发出请求

你可以试着解决这个问题


getSignedUrl调用工作正常,因为SDK完全“离线”完成了该操作(S3API中没有此类调用)。

我发现问题来自S3 CORS设置,该设置默认为allowedheaders=Authorized。用*替换它成功了。这是由S3抱怨没有收到授权请求引起的

这似乎是一个身份验证问题。当我将bucket CORS策略设置为*时,它可以工作,但经过授权后失败。此外,如果accessKeyId或secretAccessKey错误,则getSignedUrl调用将失败。事实上,S3API中存在这样的调用!