mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-29 08:36:10 +03:00
Added XDomainRequest as fallback method for ajax, if XMLHttpRequest fails.
This commit is contained in:
parent
1c17374de1
commit
565e7cd097
@ -2045,8 +2045,40 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){
|
|||||||
|
|
||||||
request.onreadystatechange = function(){};
|
request.onreadystatechange = function(){};
|
||||||
|
|
||||||
if ( $.isFunction( onError ) ) {
|
if (window.XDomainRequest) { // IE9 or IE8 might as well try to use XDomainRequest
|
||||||
onError( request, e );
|
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 (e) {
|
||||||
|
if ( $.isFunction( onError ) ) {
|
||||||
|
onError( request, e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ( $.isFunction( onError ) ) {
|
||||||
|
onError( request, e );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user