본문으로 바로가기

[AngularJS] IE Caching issue, ($http)

category Helloworld!/Angular 2017. 4. 10. 19:59

Angular 로 짠 웹페이지를 크롬에서는 동작이 잘되는데, IE 에서 안되는 문제가 생겼다.


찾아보니 get방식으로 $http 호출시 기본 cache 가 true 이기 때문에 같은 주소를 두번이상 호출하게 되면 컨트롤러로 들어가지 않는다. 
예를 들면 첫번째 $http 에서 데이터를 가져오고 두번째 $http로 데이터중 한가지 값을 바꾸고 
다시 첫번째 $http 를 호출하게 되면 변경된 데이터가 출력되는것이 아니라 cache 되어있는 구 데이터가 그대로 출력되는 문제가 발생 한다고 한다.
참고 사이트 : http://trandent.com/board/angularjs/detail/577 (완전 복붙 ㅋㅋㅋ)

해결방법은 config 에 httpProvider 를 no-cache 로 세팅하는 것.
 myModule.config(['$httpProvider', ($httpProvider) => {
    if (!$httpProvider.defaults.headers.get) {
        $httpProvider.defaults.headers.get = {};
    }
    $httpProvider.defaults.headers.common['Cache-Control'] = 'no-cache';
    $httpProvider.defaults.headers.common['Pragma'] = "no-cache";
    $httpProvider.defaults.headers.get['If-Modified-Since'] = '0';
}])


참고 사이트