【发布时间】:2012-09-09 15:31:31
【问题描述】:
我在 HTML5 CORS 文件上传器上使用 Amazon S3。它运行良好,但我仍然有一件非常奇怪的事情正在发生。
在 PUT 请求发送文件之前,浏览器总是发送 OPTIONS 请求,该请求失败并返回 403 FORBIDDEN 错误代码。
但文件已正确传输到 S3,这是怎么回事?
请注意,我尝试通过启用所有 HTTP 方法来解决我的问题,但没有奏效..
这是我用于 PUT 请求的标头:
AWSAccessKeyId:XXXXXXXXXXXXXXXXXXXXXX
Expires:1347882643
Signature:YYYYYYYYYYYYYYYYYYYYY
还有一些代码:
var xhr = new XMLHttpRequest();
// bind the event listener
xhr.upload.addEventListener("progress", progress_listener, false);
// open the XMLHttpRequest
xhr.open('PUT', signed_url, true);
// when the upload is completed call the callback function if supplied
xhr.onload = function(e) {
if(typeof callback == "function") {
callback(this.status == 200, file.name, file_id);
confirm_upload_success(file_id);
}
};
// start sending
xhr.send(file);
感谢您的帮助
【问题讨论】:
-
您是否正确设置了 CORS? docs.amazonwebservices.com/AmazonS3/latest/dev/cors.html
-
当然可以,但是 Amazon S3 不允许您将 OPTIONS 放入允许的 HTTP 方法中
标签: javascript amazon-s3 amazon