fix(XHRImpl): file:/// and IE9 bugs
This commit is contained in:
parent
f93aae4802
commit
cd735c4837
|
@ -11,9 +11,22 @@ export class XHRImpl extends XHR {
|
||||||
xhr.responseType = 'text';
|
xhr.responseType = 'text';
|
||||||
|
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
var status = xhr.status;
|
// responseText is the old-school way of retrieving response (supported by IE8 & 9)
|
||||||
|
// response/responseType properties were introduced in XHR Level2 spec (supported by IE10)
|
||||||
|
var response = ('response' in xhr) ? xhr.response : xhr.responseText;
|
||||||
|
|
||||||
|
// normalize IE9 bug (http://bugs.jquery.com/ticket/1450)
|
||||||
|
var status = xhr.status === 1223 ? 204 : xhr.status;
|
||||||
|
|
||||||
|
// fix status code when it is 0 (0 status is undocumented).
|
||||||
|
// Occurs when accessing file resources or on Android 4.1 stock browser
|
||||||
|
// while retrieving files from application cache.
|
||||||
|
if (status === 0) {
|
||||||
|
status = response ? 200 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (200 <= status && status <= 300) {
|
if (200 <= status && status <= 300) {
|
||||||
completer.resolve(xhr.responseText);
|
completer.resolve(response);
|
||||||
} else {
|
} else {
|
||||||
completer.reject(`Failed to load ${url}`, null);
|
completer.reject(`Failed to load ${url}`, null);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue