我使用以下代码尝试将文件上传到AWS S3服务器:
function ajaxUpload(fd, file, signedFormData, nameOfFile) {
var IsCompletedFired = 0;
$.support.cors = true;
var jqXHR=$.ajax({
xhr: function() {
//...
},
url: "https://s3-ap-southeast-2.amazonaws.com/"+signedFormData.bucket +"/",
type: "POST",
crossDomain: true,
contentType: false,
processData: false,
cache: false,
async: true,
dataType: false,
enctype:"multipart/form-data",
encoding:"multipart/form-data",
data: fd,
error: function(xhr, textStatus, errorThrown) {
console.log('xhr'+ xhr);
console.log('textStatus'+ textStatus);
console.log('errorThrown '+errorThrown);
},
success: function(data){
}(signedFormData) // end of success callback
}); // end of AJAX*/
uploadAjaxCalls[uploadAjaxCalls.length] = jqXHR;
}
适用于Chrome,Firefox和Edge。但是对IE11不起作用。我还没有尝试过任何低于11的IE版本。我已经搜索了这个问题并尝试了我能做的一切,但没有一个能为我工作。
所以我尝试过的事情包括:
在运行ajax调用之前放置1毫秒。我使用下面的代码来调用方法:
setTimeout(function(){ ajaxUpload(fd,file,signedFormData,nameOfFile); },1);
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
添加到网页中。 但是目前他们还没有为我工作。还有其他想法吗?