11'use strict' ;
22
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+ } ;
530}
631
732/**
833 * @ngdoc service
934 * @name $httpBackend
1035 * @requires $window
1136 * @requires $document
37+ * @requires $xhrFactory
1238 *
1339 * @description
1440 * HTTP backend used by the {@link ng.$http service} that delegates to
@@ -21,8 +47,8 @@ function createXhr() {
2147 * $httpBackend} which can be trained with responses.
2248 */
2349function $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 ] ) ;
2652 } ] ;
2753}
2854
@@ -46,7 +72,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
4672 } ) ;
4773 } else {
4874
49- var xhr = createXhr ( ) ;
75+ var xhr = createXhr ( method , url ) ;
5076
5177 xhr . open ( method , url , true ) ;
5278 forEach ( headers , function ( value , key ) {
0 commit comments