관리 메뉴

SIMPLE & UNIQUE

IE에서 ajax를 post로 전송시 .empty() .html() 이벤트가 1번만 실행되는 경우 본문

Java & Spring/Solution

IE에서 ajax를 post로 전송시 .empty() .html() 이벤트가 1번만 실행되는 경우

착한코딩 2017. 3. 24. 12:07

POST/AJAX

  • 아래 코드는 body 유형 선택시 그에 맞는 jsp파일 자체를 html로 뿌려주는 스크립트다.
  • 크롬에서는 정상동작.
  • 익스프로러에서는 첫번째 body유형 선택시에만 실행되고, 2번째 선택부터는 동작하지 않는다.
  • 구글링 해보면 캐시가 남아있는 상태에서, 계속 똑같은 ajax url을 호출하니 오류가 난다는
    (ie cache 문제) 답변이 많다. 


 $("'#drugBody").empty();
 $.ajax({   
     type: "POST",  
     url:  "/home/index_ajax", 
    data : {param1 =  value1},
    dataType : "html"
        success: function(data){
            $j('#drugBody").html(data);
         }
     }
 );


1. ajax 코드 내에 캐시를 남기지 않는 코드추가 (cache = false)

2. ajax 호출시 매번 url 뒤에 현재시간을 붙여 url을 항상 다르게 호출

=> 위에 두가지 시도를 해봤지만 해결되지 않음


1. document.getElementById("drugBody").innerHTML = ""; 로 대체
=> 해결

  • 정확한 이유는 모르겠지만

  • IE 9이상인 버전 혹은 html5와 스크립트 함수가, 호환이 제대로 되지 않는 것 같다. 


Comments