I'm getting some trouble with ie8/ie9 while trying to get response Html from server.
$(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;
}
});
});
Here data.response().jqXHR.responseText is always undefined in old Ies. What am I doing wrong? Can i get response body in old browsers?
Found an answer in FAQ:
As ie<10 version uses iframe to send-receive data instead of xhr response body is not accessible in usual way. So for ie I have to override converters to throw error if server responded with invalid data type.
$.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);
}
}
}
});