使用AWS javascript sdk获取No Access-Control-Allow-Origin错误

时间:2017-08-07 09:40:14

标签: javascript amazon-web-services amazon-s3

我使用AWS javascript浏览器版本将文件上传到AWS S3服务器。我收到以下错误:

  

XMLHttpRequest无法加载   https://s3-ap-southeast-2.amazonaws.com/cortex.myauscript.upload/uploadcontent-upload-development/TestFileName.txt。   对预检请求的响应没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' null'因此不允许访问。响应   有HTTP状态码403。

我搜索过此错误,但我可以确认该存储桶上的CORS设置是否已正确设置。所以我在这里有点困惑。

以下是我的代码:

    var bucketName = 'cortex.myauscript.upload';
    AWS.config.region = 'ap-southeast-2';
    AWS.config.update({
        accessKeyId : 'test',
        secretAccessKey : 'test'
    });

    var bucket = new AWS.S3({
        params: {
            Bucket: bucketName
        }
    });

    var fileChooser = document.getElementById('file-chooser');
    var button = document.getElementById('upload-button');
    var results = document.getElementById('results');

    $("#upload-button").click(function() {
        var file = fileChooser.files[0];
        if(file) {
            var params = {
                Key: 'uploadcontent-upload-development/TestFileName.txt',
                ContentType: file.type,
                Body: file
            };
            bucket.upload(params).on('httpUploadProgress', function(evt){
                console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
            }).send(function(err, data) {
                alert("File uploaded successfully.");
            });
        }
    });

我也有点疑惑,错误的密钥/安全密钥会产生相同的错误。我不是百分百肯定的。

感谢。

1 个答案:

答案 0 :(得分:1)

您似乎正在从file://而非http://运行您的应用,这会产生无法获得授权的null来源。