본문 바로가기

개발

IE에서 xhr(ajax) cache 문제

반응형

IE는 참.... 네

ajax통신을 위해 xhr을 사용했는데, get요청의 응답이 계속해서 같았습니다.

이게 뭐지? 하고 인터넷 옵션>페이지 데이터 삭제 하니까 되고. 그러다 다시 또 안되는 겁니다.

찾아보니 IE에서 get으로 동일한 url일 경우 값을 동일하게 내려준다네요.....

 

이에 대한 해결책은 아래와 같습니다

 

 

1. post요청으로 수정한다

            let req = new XMLHttpRequest();
            req.onreadystatechange = function () {
            '''
              }
            };
            req.open("POST");
            req.send();

 

2. param끝에 timestamp추가

ex:'?_='+new Date().getTime()

            let req = new XMLHttpRequest();
            req.onreadystatechange = function () {
            '''
              }
            };
            req.open("GET", url+'?_='+new Date().getTime());
            req.send();

 

3. header의 Pragma, Cache Control값을 no-cahce로 설정

 

            let req = new XMLHttpRequest();
            req.onreadystatechange = function () {
            '''
              }
            };
            req.open("GET", url+'?_='+new Date().getTime());
            req.setRequestHeader('Pragma', no-cache)
            req.setRequestHeader('Cache Control', no-cache)
            req.send();

 

 

 

 

저는 2번을 사용했는데 되네요ㅎㅎ 다행입니다