IE 브라우저에서는 정말 예외케이스가 많은 것 같다.

IE에서 GET 방식으로 jQuery.ajax() 요청을 할 경우 같은 URL에 대해 캐싱(caching)이 먹어 응답결과가 갱신되어 넘어오지 않는 문제가 있다.


이를 해결하기 위해서 다음과 같은 방법으로 코드를 변경해주면 된다.


1. cache:false 옵션 활용

1) ajaxSetup() 함수로 cache:false 값을 global하게 설정한다.

- 제일 깔끔한 방법. 추천!

- 공통 JSP 등에 아래와 같이 설정을 하게 되면 매번 ajax 호출시마다 설정하는 번거로움을 피할 수 있다.

<script type="text/javascript">
jQuery.ajaxSetup({
cache: false
});
</script>

2) 1회성일 경우 ajax 호출시 cache:false값을 설정해주면 된다.

<script type="text/javascript">
jQuery.ajax({
url:"http://www.naver.com",
cache: false,
dataType: "json",
success: function (result) {},
error: function () {}
});
</script>

2. new Date()로 URL에 TIMESTAMP값 추가하기

- 다른 URL로 인식할 수 있도록 가변적인 TIMESTAMP값을 넣어준다.

<script type="text/javascript">
jQuery.ajax({
url:"http://www.naver.com?t=" + new Date().getTime(),
dataType: "json",
success: function (result) {},
error: function () {}
});
</script>


Posted by SungHoon, Park
,