浏览器的Amazon S3 javascript sdk抛出403错误

浏览器的Amazon S3 javascript sdk抛出403错误,javascript,angular,cors,electron,amazon-javascript-sdk,Javascript,Angular,Cors,Electron,Amazon Javascript Sdk,我正在为我的一个应用程序使用AmazonS3JavaScript sdk。我得到以下错误: XMLHttpRequest cannot load https://s3.amazonaws.com/. Response for preflight has invalid HTTP status code 403 我发现我的飞行前请求失败了 我正在使用Angular2进行我的应用程序,我正在尝试获取桶的列表。这是我写的代码: getBuckets(comp: any) { var

我正在为我的一个应用程序使用AmazonS3JavaScript sdk。我得到以下错误:

XMLHttpRequest cannot load https://s3.amazonaws.com/. Response for preflight has invalid HTTP status code 403
我发现我的飞行前请求失败了

我正在使用Angular2进行我的应用程序,我正在尝试获取桶的列表。这是我写的代码:

getBuckets(comp: any) {
        var s3 = this.getS3();
        var params = {};
        s3.listBuckets(params, function(err, response) {
            if (err) {
                console.log(err);
                console.log('error from list buckets');
            }
            else {
                comp.buckets = response.Buckets;
            }
        })
    }
getS3()是我编写的用于创建S3实例的方法。这就是它的样子:

private getS3() {
        var currentUser = this.accountInfoService.getCurrentUser();
        AWS.config.update({ accessKeyId: currentUser.accessKeyId, secretAccessKey: currentUser.secretAccessKey });
        var Logger = { log: function(line) { console.log(line) } };
        if (currentUser.isECS) {
            console.log(currentUser.isECS);
            var ep = new AWS.Endpoint('http://' + currentUser.endPoint);
            var s3 = new AWS.S3({ endpoint: ep, s3ForcePathStyle: true, logger: Logger, sslEnabled: false });
        }
        else {
            var s3 = new AWS.S3();
        }
        return s3;
    }

有人能告诉我我做错了什么吗。

尝试将HTTP动词“OPTIONS”添加到服务器上允许的请求头中。您需要将其添加到响应标题中。感谢您的回复。但它不允许我在响应头中添加选项。它说,这不是一个受支持的方法。请尝试作为标头而不是作为方法,您可以添加此*以绕过标头限制