Commit 484cea1b authored by jaubourg's avatar jaubourg

Fixes #11426: getting the responseText of an xhr should be tried/caught...

Fixes #11426: getting the responseText of an xhr should be tried/caught because of IE's inability to give access to binary data. Unit test added.
parent 014b2a57
...@@ -148,7 +148,13 @@ if ( jQuery.support.ajax ) { ...@@ -148,7 +148,13 @@ if ( jQuery.support.ajax ) {
if ( xml && xml.documentElement /* #4958 */ ) { if ( xml && xml.documentElement /* #4958 */ ) {
responses.xml = xml; responses.xml = xml;
} }
responses.text = xhr.responseText;
// When requesting binary data, IE6-9 will throw an exception
// on any attempt to access responseText (#11426)
try {
responses.text = xhr.responseText;
} catch( _ ) {
}
// Firefox throws an exception when accessing // Firefox throws an exception when accessing
// statusText for faulty cross-domain requests // statusText for faulty cross-domain requests
......
...@@ -2322,6 +2322,20 @@ test("jQuery.ajax - abort in prefilter", function() { ...@@ -2322,6 +2322,20 @@ test("jQuery.ajax - abort in prefilter", function() {
}); });
test( "jQuery.ajax - loading binary data shouldn't throw an exception in IE (#11426)", 1, function() {
stop();
jQuery.ajax( url( "data/1x1.jpg" ), {
success: function( data ) {
ok( data === undefined || /JFIF/.test( data ) , "success callback reached" );
start();
},
error: function( _, __, error ) {
ok( false, "exception thrown: '" + error + "'" );
start();
}
});
});
test("jQuery.ajax - active counter", function() { test("jQuery.ajax - active counter", function() {
ok( jQuery.active == 0, "ajax active counter should be zero: " + jQuery.active ); ok( jQuery.active == 0, "ajax active counter should be zero: " + jQuery.active );
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment