Merge pull request #693 from O-Zone/master

Added XDomainRequest as fallback method for ajax, if XMLHttpRequest f…
This commit is contained in:
Ian Gilman 2015-07-30 09:19:08 -07:00
commit 537eb83e34

View File

@ -2045,8 +2045,40 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){
request.onreadystatechange = function(){};
if ( $.isFunction( onError ) ) {
onError( request, e );
if (window.XDomainRequest) { // IE9 or IE8 might as well try to use XDomainRequest
var xdr = new XDomainRequest();
if (xdr) {
xdr.onload = function (e) {
if ( $.isFunction( onSuccess ) ) {
onSuccess({ // Faking an xhr object
responseText: xdr.responseText,
status: 200, // XDomainRequest doesn't support status codes, so we just fake one! :/
statusText: 'OK'
});
}
};
xdr.onerror = function (e) {
if ( $.isFunction ( onError ) ) {
onError({ // Faking an xhr object
responseText: xdr.responseText,
status: 444, // 444 No Response
statusText: 'An error happened. Due to an XDomainRequest deficiency we can not extract any information about this error. Upgrade your browser.'
});
}
};
try {
xdr.open('GET', url);
xdr.send();
} catch (e2) {
if ( $.isFunction( onError ) ) {
onError( request, e );
}
}
}
} else {
if ( $.isFunction( onError ) ) {
onError( request, e );
}
}
}
},