Javascript IE11-Jquery/ajax中表单数据的上传速度非常慢

Javascript IE11-Jquery/ajax中表单数据的上传速度非常慢,javascript,jquery,ajax,internet-explorer-11,Javascript,Jquery,Ajax,Internet Explorer 11,看了一百万篇关于这个的帖子,但找不到一个实际的解决方案。我正在寻找一个解决方案或确认这是一个IE11错误,我必须处理。尝试使用ajax表单数据发布图像。在除IE11之外的所有浏览器中都能完美工作(不在乎其他版本的IE)。无论我尝试什么,帖子都处于挂起状态,如下所示: 有时它会完成,但需要100多秒才能完成,这一点都不理想 有人知道如何使用插件或其他上传图像的方法来解决这个问题吗 我的代码: var inputField = $(e.target); var rxContain

看了一百万篇关于这个的帖子,但找不到一个实际的解决方案。我正在寻找一个解决方案或确认这是一个IE11错误,我必须处理。尝试使用ajax表单数据发布图像。在除IE11之外的所有浏览器中都能完美工作(不在乎其他版本的IE)。无论我尝试什么,帖子都处于挂起状态,如下所示:

有时它会完成,但需要100多秒才能完成,这一点都不理想

有人知道如何使用插件或其他上传图像的方法来解决这个问题吗

我的代码:

    var inputField = $(e.target);
    var rxContainer = $(e.target).closest('.image-preview-container');
    var uploadBtn = $(rxContainer).find('.fileinput-button');
    var uploadBtnTxt = $(uploadBtn).find('span');
    var base64Text = $(rxContainer).find('.base64Text');
    var imageAccessKey = $(rxContainer).find('.AccessKey-div').find('input');
    var image = $(inputField).data('image');
    var blobFile = inputField[0].files[0];
    var fd = new FormData();

fd.append('file', blobFile);
fd.append('nothing', 'nothing');

//disable buttons during upload
$(inputField).prop('disabled', true);
$(uploadBtn).css('opacity', '0.3');
$(':submit').prop('disabled', true);
$(':submit').css('opacity', '0.3');


var xhr;
var uploadImage = function () {     
  showLoadingDialog();
    xhr = $.ajax({
        url: Urls.rximageuploadapi,
        headers: {
            'Authorization': 'Bearer ' + image
        },
        type: 'POST',
        data: fd ? fd : inputField.serialize(),
        processData: false,
        contentType: false,
        cached: false,
        success: function(response) {
            //load image access key into form
            imageAccessKey.val(response.imageAccessKey);

            //load returned image into preview window
            loadImage(response.image, rxContainer);
            $(base64Text).html(response.image);

            //re-enable buttons after upload
            $(inputField).prop('disabled', false);
            $(uploadBtn).css('opacity', '1');
            $(':submit').prop('disabled', false);
            $(':submit').css('opacity', '1');
            hideLoadingDialog();
        },
        error: function(jqXHR, textStatus, errorMessage) {
            //display error message
            clearCanvas(rxContainer);
            uploadBtnTxt.text(Resources.CHOOSEPHOTO_MESSAGE);
            $maxFileSizeError.hide();
            $maxFileTypeError.hide();

            if (jqXHR.status == "500") {
                var errorResponse = jqXHR.responseText;
                var jsonResponse = JSON.parse(errorResponse);
                if (jsonResponse.errors != undefined && jsonResponse.errors.length > 0) {
                    for (var i = 0; i < jsonResponse.errors.length; i++) {
                        var errorText = jsonResponse.errors[i].message;
                        if (errorText == "BLANK_IMAGE" || errorText == "CORRUPTED_FILE") {
                            $corruptedFile.show();
                            break;
                        } else if (errorText == "PASSWORD_PROTECTED") {
                            $passwordProtectedFile.show();
                            break;
                        }
                    }
                } else {
                    $fileUploadError.show();
                }
            } else {
                $fileUploadError.show();
            }

            //re-enable buttons after upload
            $(inputField).prop('disabled', false);
            $(uploadBtn).css('opacity', '1');
            $(':submit').prop('disabled', false);
            $(':submit').css('opacity', '1');
            hideLoadingDialog();
        }
    });
}
var inputField=$(e.target);
var rxContainer=$(e.target).closest('.image preview container');
var uploadBtn=$(rxContainer).find('.fileinput按钮');
var uploadBtnTxt=$(uploadBtn.find('span');
var base64Text=$(rxContainer.find('.base64Text');
var imageAccessKey=$(rxContainer).find('.AccessKey div').find('input');
var image=$(inputField).data('image');
var blobFile=inputField[0]。文件[0];
var fd=新FormData();
追加('file',blobFile);
fd.append('nothing','nothing');
//在上传期间禁用按钮
$(inputField).prop('disabled',true);
$(uploadBtn).css('opacity','0.3');
$(':submit').prop('disabled',true);
$(':submit').css('opacity','0.3');
var-xhr;
var uploadImage=函数(){
showLoadingDialog();
xhr=$.ajax({
url:url.rximageuploadapi,
标题:{
“授权”:“持有人”+图像
},
键入:“POST”,
数据:fd?fd:inputField.serialize(),
processData:false,
contentType:false,
答:错,,
成功:功能(响应){
//将图像访问密钥加载到表单中
val(response.imageAccessKey);
//将返回的图像加载到预览窗口
loadImage(response.image,rxContainer);
$(base64Text).html(response.image);
//上传后重新启用按钮
$(inputField).prop('disabled',false);
$(uploadBtn).css('opacity','1');
$(':submit').prop('disabled',false);
$(':submit').css('opacity','1');
hideLoadingDialog();
},
错误:函数(jqXHR、textStatus、errorMessage){
//显示错误消息
clearCanvas(rxContainer);
上传btntxt.text(参考资料。选择照片消息);
$maxFileSizeError.hide();
$maxFileTypeError.hide();
如果(jqXHR.status==“500”){
var errorResponse=jqXHR.responseText;
var jsonResponse=JSON.parse(errorResponse);
if(jsonResponse.errors!=未定义&&jsonResponse.errors.length>0){
对于(var i=0;i
请求IE中的有效负载:

请求Chrome中的有效负载:

jquery版本?我使用的是版本2.1.1。您能比较两个请求主体吗?同样疯狂的是,它只需要“更长的时间”……你的意思是在不同的浏览器之间比较两个请求主体吗?@CodyG。我上传了IE 11和Chrome的请求负载。如果你对此提出质疑,图像类型似乎并不重要。png和jpeg在两种浏览器中的行为与Chrome中的正确行为相同,而在IEjquery版本中的慢行为相同?我使用的是2.1.1版。您可以比较这两个请求主体吗?同样疯狂的是,它只需要“更长的时间”……你的意思是在不同的浏览器之间比较两个请求主体吗?@CodyG。我上传了IE 11和Chrome的请求负载。如果你对此提出质疑,图像类型似乎并不重要。在这两种浏览器中,png和jpeg的行为与在Chrome中的正确行为和在IE中的慢速行为相同