본문 바로가기

Language/JQuery

[jQuery] IE Ajax cache 관련 오류.

반응형

나는 평소에 기본 브라우저로 FF를 사용하고, 개발할때는 크롬을 주로 사용한다.
IE의 경우 크로스 브라우징 처리나, 개발 후 테스트 결과에 따른 오류사항을 처리하기위에 잠깐씩 사용하는 정도이다.

어느날 아주 간단하게 ajax를 이용하여 개발된 스크립트가 IE에서 정상적으로 작동하지 않는다는 보고서를 받았다.


크롬과 FF는 아주 정상적으로 잘 작동되고 IE에서만 되지 않아, 확인해 보니 실제로 IE에서 ajax 오류라고 볼수 없는 오류가 발생하였다.

IE의 경우 ajax로 호출하는 URL이 동일하고 파라미터가 없거나 할 경우 매번 URL을 호출하는것이 아닌 Cache를 이용하여 지가 멋대로 결과값을 내보내 주고 있었다. (서버에 요청을 안한다...)



jquery 옵션을 찾아보니 cache 항목이 보인다. 해당 옵션은 default로 true로 설정되어 있는데, 해당 옵션을 false로 변경하면 IE에서 해당 오류가 사라진다.


"cache:false"를 ajaxSetup에 추가하거나 ajax 구문에 직접 넣으면 된다.


$.ajaxSetup({cache:false});


$.ajax({
     
    type : "GET",
    url : "test.jsp",
    dataType : "json",
    cache : false,
    error : function(){
    },
    success : function(json){
    }
     
});