我正在使用HTML5的CORS文件上传器与Amazon S3一起工作。它运行良好,但我仍然遇到了一个非常奇怪的问题。
在发送文件之前的PUT请求中,浏览器总是会发送一个OPTIONS请求,但其失败并返回403禁止错误代码。
但是文件确实已正确传输到S3,这是怎么回事?
我尝试通过启用所有HTTP方法来解决问题,但未成功。
以下是我用于PUT请求的标头:
在发送文件之前的PUT请求中,浏览器总是会发送一个OPTIONS请求,但其失败并返回403禁止错误代码。
但是文件确实已正确传输到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);