jQuery IE < 10 中的文件上传响应不包含 jqXHR.responseText 属性

jQuery File Upload response does not contain jqXHR.responseText property in IE < 10

我在尝试从服务器获取响应 Html 时遇到了 ie8/ie9 的一些问题。

$(function() {
    $('#fileupload').fileupload({
        url: '@Url.Action("Save", "CounterDoc")',
        dataType: 'json',
        formData: window.globalParams, 
        fail: function (e, data) { // case when server returns NOT JSON - is fail.                 
            var responseObj = {};
            responseObj.responseText = data.response().jqXHR.responseText;
        }
    });
});

这里 data.response().jqXHR.responseText 在旧的 Ies 中总是未定义的。我究竟做错了什么?我可以在旧浏览器中获取响应正文吗?

FAQ 中找到答案:

因为 ie<10 版本使用 iframe 来发送-接收数据而不是 xhr 响应主体无法以通常的方式访问。因此,对于 ie,如果服务器响应无效数据类型,我必须重写转换器以抛出错误。

$.ajaxSetup({
        converters: {
            'iframe json': function (iframe) {

                var result = {};
                result.responseText = iframe && $(iframe[0].body)[0].innerHTML;

                if (!IsJsonString(result.responseText)) { // answer IS NOT JSON, html contains error data

                    throw result;
                }
                else { // server sent valid JSON - OK
                    return $.parseJSON(result);    
                }
            }
        }
    });