여러 컨트롤러가있는 webapp가 있습니다. 내 컨트롤러 중 하나의 콜백에 $http
서비스의 기본 헤더를 설정하고 있습니다 (http.defaults.headers.common['headername']
통해). 그러나이 헤더는 다른 컨트롤러의 후속 호출에서 설정되지 않습니다. 내가 가진 각 컨트롤러에 대해 설정해야합니까, 아니면 한 번 정도입니까?
답변
두 가지 방법 중 하나를 사용해야합니다. 실행 블록에 $ http.defaults.headers를 설정하십시오.
module.run(function($http) {
$http.defaults.headers.common.Authorization = 'Basic Token';
});
사용 인터셉터는
var interceptor = function() {
return {
'request': function(config) {
config.headers['Authorization'] = 'Basic Token';
}
}
};
angular.module('app', [])
.config(function ($httpProvider) {
$httpProvider.interceptors.push(interceptor);
});
실행 또는 구성 블록에서 헤더를 설정할 수 없습니다. 그 시점에서 값을 사용할 수 없습니다. –
흠, 인터셉터는 코드가 요청할 때 작동합니다. 따라서 모든 정보는 그 순간에 알려졌습니다. 서비스를 통해 값을 전달할 수 있습니다. Btw 컨트롤러를 통해 머리글 작업은 좋은 생각이 아닙니다. 컨트롤러는 얇고 모든 비즈니스 및 API 로직을 서비스에 배치해야합니다. –
값을 사용할 수있는 경우에만 헤더의 값을 설정하는 서비스를 인터셉터에 삽입 할 수 있으며 이는 런타임 중에 작동 할 수 있습니다. 어떤 이유로 나는 config 블록의 모든 초기화가 "정적"이라고 생각했지만이 방법을 시도 할 것이다. –
- 1. http 요청 메시지 헤더를 설정합니다.
- 2. Laravel - 변수를 전역으로 설정합니다.
- 3. AngularJS $ http ajax가 위치 헤더를 따르지 않습니다.
- 4. AngularJS, 공장에서 http 헤더를 올바르게 수정하는 방법
- 5. php/apache에 대해 'secure'및 'httponly'플래그를 전역으로 설정합니다.
- 6. 일부 헤더를 무시하고 AngularJS
- 7. AngularJS $ http asp.net webservice를 사용하면 요청 헤더를 설정하는 방법이 있습니까?
- 8. AngularJS $ http 객체가 응답의 모든 헤더를 표시하지 않습니다.
- 9. AngularJS 요청에 헤더를 포함하는 방법
- 10. HTTP 헤더를 반환하는 NSTask
- 11. HTTP 헤더를 발행하십시오.
- 12. HTTP 요청 헤더를 인코딩해야합니까?
- 13. HTTP 헤더를 다시 보내십시오.
- 14. http 헤더를 쿠키로 푸시
- 15. http 헤더를 JSON으로 인코딩해야합니까?
- 16. http 헤더를 어디에 설정해야합니까?
- 17. 외부 변수를 sln 파일의 모든 프로젝트에서 전역으로 볼 수있게 설정합니다.
- 18. IIS 7.5에서 http 헤더 CacheControl을 Private으로 설정합니다.
- 19. SOAP-1.2 용 SOAPAction 헤더를 설정합니다.
- 20. 헤더를 보낸 후 쿠키를 설정합니다. 왜 작동합니까?
- 21. 축 2는 Mime 부분에 맞춤 헤더를 설정합니다.
- 22. angularjs - 콘텐츠 길이 헤더를 얻을 수있는 방법
- 23. AngularJS Http 대 Jquery Ajax
- 24. XMLHttpRequest()의 모든 인스턴스에 X-CSRF-Token 헤더를 전역으로 추가합니다.
- 25. HTTP 호출에서 http 응답 헤더를 디버그하는 방법
- 26. angularjs $ http POST 특수 문자
- 27. AngularJS $ http vs $ http.post
- 28. $ http 타이밍 문제, AngularJS
- 29. AngularJs $ http 게시 페이지로드
- 30. AngularJS $ http 범위 문제
당신은 당신이 응용 프로그램을 부트 스트랩 동안 곳이 공통 헤더를 설정하고, 언급 된 것을 매우 이상한? 달러 (A $) 리소스를 사용하여 시도? –
전화를해야하기 때문에 $ http 서비스를 사용하려고했지만 전체 $ 리소스 서비스는 필요하지 않습니다. 응용 프로그램을 부트 스트래핑하는 동안 헤더를 설정하지 않습니다. 다른 서버에서 헤더의 값을 검색 한 다음 설정하지만 응용 프로그램이 시작되었습니다. –
네가 맞아, $ 리소스를 사용하여 내가하는 것처럼 작동한다. 그러나 $ http 서비스가 작동하지 않는 이유를 모르겠습니다. –