1
1
'use strict' ;
2
2
3
- function createXhr ( ) {
4
- return new window . XMLHttpRequest ( ) ;
3
+ /**
4
+ * @ngdoc service
5
+ * @name $xhrFactory
6
+ *
7
+ * @description
8
+ * Factory function used to create XMLHttpRequest objects.
9
+ *
10
+ * Replace or decorate this service to create your own custom XMLHttpRequest objects.
11
+ *
12
+ * ```
13
+ * angular.module('myApp', [])
14
+ * .factory('$xhrFactory', function() {
15
+ * return function createXhr(method, url) {
16
+ * return new window.XMLHttpRequest({mozSystem: true});
17
+ * };
18
+ * });
19
+ * ```
20
+ *
21
+ * @param {string } method HTTP method of the request (GET, POST, PUT, ..)
22
+ * @param {string } url URL of the request.
23
+ */
24
+ function $xhrFactoryProvider ( ) {
25
+ this . $get = function ( ) {
26
+ return function createXhr ( ) {
27
+ return new window . XMLHttpRequest ( ) ;
28
+ } ;
29
+ } ;
5
30
}
6
31
7
32
/**
8
33
* @ngdoc service
9
34
* @name $httpBackend
10
35
* @requires $window
11
36
* @requires $document
37
+ * @requires $xhrFactory
12
38
*
13
39
* @description
14
40
* HTTP backend used by the {@link ng.$http service} that delegates to
@@ -21,8 +47,8 @@ function createXhr() {
21
47
* $httpBackend} which can be trained with responses.
22
48
*/
23
49
function $HttpBackendProvider ( ) {
24
- this . $get = [ '$browser' , '$window' , '$document' , function ( $browser , $window , $document ) {
25
- return createHttpBackend ( $browser , createXhr , $browser . defer , $window . angular . callbacks , $document [ 0 ] ) ;
50
+ this . $get = [ '$browser' , '$window' , '$document' , '$xhrFactory' , function ( $browser , $window , $document , $xhrFactory ) {
51
+ return createHttpBackend ( $browser , $xhrFactory , $browser . defer , $window . angular . callbacks , $document [ 0 ] ) ;
26
52
} ] ;
27
53
}
28
54
@@ -46,7 +72,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
46
72
} ) ;
47
73
} else {
48
74
49
- var xhr = createXhr ( ) ;
75
+ var xhr = createXhr ( method , url ) ;
50
76
51
77
xhr . open ( method , url , true ) ;
52
78
forEach ( headers , function ( value , key ) {
0 commit comments