@@ -3,7 +3,7 @@ var XHR = window.XMLHttpRequest || function() {
3
3
try { return new ActiveXObject ( "Msxml2.XMLHTTP.3.0" ) ; } catch ( e2 ) { }
4
4
try { return new ActiveXObject ( "Msxml2.XMLHTTP" ) ; } catch ( e3 ) { }
5
5
throw new Error ( "This browser does not support XMLHttpRequest." ) ;
6
- } , XDR = window . XDomainRequest || null ;
6
+ } , XDR = ! window . msPerformance && window . XDomainRequest || null ;
7
7
8
8
9
9
/**
@@ -44,13 +44,13 @@ function createHttpBackend($browser, XHR, XDR, $browserDefer, callbacks, rawDocu
44
44
45
45
jsonpReq ( url . replace ( 'JSON_CALLBACK' , 'angular.callbacks.' + callbackId ) ,
46
46
function ( ) {
47
- if ( callbacks [ callbackId ] . data ) {
48
- completeRequest ( callback , 200 , callbacks [ callbackId ] . data ) ;
49
- } else {
50
- completeRequest ( callback , - 2 ) ;
51
- }
52
- delete callbacks [ callbackId ] ;
53
- } ) ;
47
+ if ( callbacks [ callbackId ] . data ) {
48
+ completeRequest ( callback , 200 , callbacks [ callbackId ] . data ) ;
49
+ } else {
50
+ completeRequest ( callback , - 2 ) ;
51
+ }
52
+ delete callbacks [ callbackId ] ;
53
+ } ) ;
54
54
} else {
55
55
var status ;
56
56
if ( useXDomain && XDR ) {
@@ -60,6 +60,7 @@ function createHttpBackend($browser, XHR, XDR, $browserDefer, callbacks, rawDocu
60
60
// Required to XDomainRequest works
61
61
xdr . timeout = timeout ;
62
62
xdr . onprogress = function ( ) { } ;
63
+
63
64
xdr . ontimeout = function ( ) {
64
65
completeRequest ( callback , 408 , 'Timeout' , 'Content-Type: text/plain' ) ;
65
66
xdr . abort ( ) ;
@@ -75,7 +76,9 @@ function createHttpBackend($browser, XHR, XDR, $browserDefer, callbacks, rawDocu
75
76
} ;
76
77
77
78
78
- setTimeout ( xdr . send , 0 ) ; //fix IE bug that raises '$apply already in progress' on cached requests
79
+ $browserDefer ( function ( ) {
80
+ xdr . send ( ) ;
81
+ } , 0 ) ; //fix IE bug that raises '$apply already in progress' on cached requests
79
82
80
83
if ( timeout > 0 ) {
81
84
$browserDefer ( function ( ) {
0 commit comments