2016-09-23 15 views
0

angularjsの$ httpでxhr.responseURLにアクセスする方法はありますか?

MDNには、raw xhrの処理方法が記載されています。しかし、私はangularjsとxhrオブジェクトにアクセスするための解決策を見つけることができませんでした。

+0

はこれを参照してくださいhttp://stackoverflow.com/questions/16532639/access-raw-xhr -object-using-http – GANI

答えて

0
$http.get(...) 
    .then(function(response){ 
     //check response.status/headers/config/statusText 
    }) 

参照:私は$ xhrFactoryを変更することで、解決策を見つけたhttps://docs.angularjs.org/api/ng/service/ $ HTTP

1

angular.module('myApp', []) 
.factory('$xhrFactory', ['$rootScope', ($rootScope) => { 
    return function createXhr(method, url) { 

     // configure the xhr object that will be used for $http requests 
     const xhr = new window.XMLHttpRequest({ mozSystem: true }); 

     // attach an handler 
     xhr.onreadystatechange =() => { 
      if (xhr.readyState === XMLHttpRequest.DONE) { 

       /* 
       you can restrict local xhr calls 
       if (xhr.responseURL.startsWith('file://')) { 
        return; 
       } 
       */ 

       // broadcast xhr object to root scope 
       $rootScope.$broadcast('xhrDone', xhr); 
      } 
     }; 
     return xhr; 
    }; 
}]) 
.controller('MyCtrl', ['$scope', ($scope) => { 

    $scope.$on('xhrDone', (event, xhr) => { 
     // here is the responseURL 
     console.log(xhr.responseURL); 
    }); 

}]) 
関連する問題