2014-04-17 11 views
5

Rozważam dodanie domyślnego nagłówka dla usługi $ http, której wartością jest token dostępu, który zostanie wygenerowany po uwierzytelnieniu użytkownika.

module.config('$routeProvider', '$locationProvider', '$httpProvider'){ 
    $httpProvider.defaults.headers.post['XSRF-AUTH'] = 
     "some accessToken to be generated later"; 
} 

Problem blok config() stosuje się, gdy kątowe siłach swoich podstawowych składników. Czy istnieje sposób dynamicznego zmieniania $ĥttpProvider?

Odpowiedz

14

Możesz zmienić domyślny nagłówek za pośrednictwem obiektu $ http w czasie wykonywania zamiast w funkcji $ httpProvider. Na przykład można wykonać następujące czynności poza blokiem config:

$http.defaults.headers.post['XSRF-AUTH'] = "access token"; 

Sprawdź $ Docs http api Aby uzyskać więcej informacji http://docs.angularjs.org/api/ng/service/$http#setting-http-headers.

+0

To faktycznie zadziałało, chciałem ci pomóc. –

+0

to jest miłe, jedynym problemem jest gdzie go umieścić. Możesz umieścić go w module load, ale co jeśli masz wiele modułów, które mogą być załadowane razem lub nie. kiedy umieściłem ten kod na stronie po załadowaniu pliku angular.js, otrzymuję komunikat "$ http is not defined" –

+0

Sonic Soul, nie jestem pewien, czy rozumiem twoje pytanie, ale musisz umieścić to gdzieś, gdzie możesz użyć wtyczki zależności, aby uzyskać odniesienie do $ http (np. kontroler, uruchom, usługa itp.). Gdzie umieścić to zależy od twojej aplikacji. – Leo