Formdata和XMLhttpRequest不能在IE 11上工作

时间:2015-03-13 09:14:16

标签: javascript internet-explorer xmlhttprequest form-data

我正在使用formdataXMLHttpRequest使用ajax提交表单。现在一切都适用于IE 11以外的其他浏览器。注意我正在使用此ajax请求上传文件。

我的代码如下

var form = document.getElementById('chatMessageForm');
var formData = new FormData(form);
var xhr = new XMLHttpRequest();
// Add any event handlers here...
xhr.open('POST', form.getAttribute('action'), true);
xhr.responseType = "json";
xhr.send(formData);
xhr.onload = function (e) {
    var new_message_response = xhr.response; // not responseText
    console.log(new_message_response);
    if (new_message_response.conversationStatus) {
        alert('This Conversation is disabled by Other User');
        jQuery('.conversationadd .messagebox #msgbox').attr('disabled',true);
    } else {
        var downloadLink = '';
        if (new_message_response.attachment != '' && new_message_response.attachment != null) {
            downloadLink = '<a href=" ' + new_message_response.attachment_file_path + '" download="' + new_message_response.attachment + '" class="attachment">Download Attachment</a>';
        }
        jQuery('.chatmessageinner').append('<div class="singlemsg right" id=" ' + new_message_response.id + ' ">'
            + '<p> ' + msg + ' </p>'
            + '<div class="messagefooter">'
            + '<span class="time">' + new_message_response.time + '</span>'
            + downloadLink
            + '</div>'
            + '</div>');
        var objDiv = document.getElementsByClassName("chatmessageinner")["0"];
        objDiv.scrollTop = objDiv.scrollHeight;
    }
}

1 个答案:

答案 0 :(得分:0)

我已经使用了jQuery.ajax而不是XMLhttpRequest现在一切都像丝绸一样流畅:)现在我的代码看起来像这样:

var form = document.getElementById('chatMessageForm');
            var formData = new FormData(form);
jQuery.ajax({
                url: form.getAttribute('action'),
                type: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                success: function (data) {
                    var new_message_response = data;
                    if (new_message_response.conversationStatus)
                    {
                        alert('This Conversation is disabled by Other User');
                        jQuery('.conversationadd .messagebox #msgbox').attr('disabled', true);
                    }
                    else
                    {
                        var downloadLink = '';
                        if (new_message_response.attachment != '' && new_message_response.attachment != null)
                        {
                            downloadLink = '<a href=" ' + new_message_response.attachment_file_path + '" download="' + new_message_response.attachment + '" class="attachment">Download Attachment</a>';
                        }
                        jQuery('.chatmessageinner').append('<div class="singlemsg right" id=" ' + new_message_response.id + ' ">'
                                + '<p> ' + msg + ' </p>'
                                + '<div class="messagefooter">'
                                + '<span class="time">' + new_message_response.time + '</span>'
                                + downloadLink
                                + '</div>'
                                + '</div>');
                        var objDiv = document.getElementsByClassName("chatmessageinner")["0"];
                        objDiv.scrollTop = objDiv.scrollHeight;
                    }
                },
                error: function (data) {
                    alert("error");
                }
            });