我使用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.");
});
}
});
我也有点疑惑,错误的密钥/安全密钥会产生相同的错误。我不是百分百肯定的。
感谢。
答案 0 :(得分:1)
您似乎正在从file://
而非http://
运行您的应用,这会产生无法获得授权的null
来源。