@@ -64,7 +64,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
64
64
var jsonpDone = jsonpReq ( url , callbackPath , function ( status , text ) {
65
65
// jsonpReq only ever sets status to 200 (OK), 404 (ERROR) or -1 (WAITING)
66
66
var response = ( status === 200 ) && callbacks . getResponse ( callbackPath ) ;
67
- completeRequest ( callback , status , response , '' , text ) ;
67
+ completeRequest ( callback , status , response , '' , text , '' ) ;
68
68
callbacks . removeCallback ( callbackPath ) ;
69
69
} ) ;
70
70
} else {
@@ -99,18 +99,27 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
99
99
status ,
100
100
response ,
101
101
xhr . getAllResponseHeaders ( ) ,
102
- statusText ) ;
102
+ statusText ,
103
+ 'Request Completed' ) ;
103
104
} ;
104
105
105
106
var requestError = function ( ) {
106
107
// The response is always empty
107
108
// See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error
108
- completeRequest ( callback , - 1 , null , null , '' ) ;
109
+ completeRequest ( callback , - 1 , null , null , '' , 'Request Error' ) ;
110
+ } ;
111
+
112
+ var requestAborted = function ( ) {
113
+ completeRequest ( callback , - 1 , null , null , '' , 'Request Aborted' ) ;
114
+ } ;
115
+
116
+ var requestTimedOut = function ( ) {
117
+ completeRequest ( callback , - 1 , null , null , '' , 'Request Timed Out' ) ;
109
118
} ;
110
119
111
120
xhr . onerror = requestError ;
112
- xhr . onabort = requestError ;
113
- xhr . ontimeout = requestError ;
121
+ xhr . onabort = requestAborted ;
122
+ xhr . ontimeout = requestTimedOut ;
114
123
115
124
forEach ( eventHandlers , function ( value , key ) {
116
125
xhr . addEventListener ( key , value ) ;
@@ -160,14 +169,14 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
160
169
}
161
170
}
162
171
163
- function completeRequest ( callback , status , response , headersString , statusText ) {
172
+ function completeRequest ( callback , status , response , headersString , statusText , xhrStatus ) {
164
173
// cancel timeout and subsequent timeout promise resolution
165
174
if ( isDefined ( timeoutId ) ) {
166
175
$browserDefer . cancel ( timeoutId ) ;
167
176
}
168
177
jsonpDone = xhr = null ;
169
178
170
- callback ( status , response , headersString , statusText ) ;
179
+ callback ( status , response , headersString , statusText , xhrStatus ) ;
171
180
}
172
181
} ;
173
182
0 commit comments