본문 바로가기

프로그래밍

IE8도 지원하는 IFRAME 이용해 AJAX 처럼 파일 비동기 전송 및 콜백





<iframe name="dummy" id="dummy" src="" height="0" width="0"></iframe>

<form id="frmfile" name="frmfile" method="post" enctype="multipart/form-data"> <input type="hidden" id="input" name="input">         </form>


<script>

frmfile.reset(); var frmfile= document.getElementById("frmfile"); frmfile.action = "URL"; frmfile.target = "dummy"; frmfile.method = "POST"; jQuery("#dummy").off("load"); jQuery("#dummy").on("load", function() { var res= jQuery(this).contents().find('body').html().toString(); var jData = JSON.parse(res); jData = null; res = null; }); frm.submit();

</script>

위 IFRAME에서 SUBMIT이 이루어 지기때문에 AJAX처럼 보이며 IE8,9등에서도 정상적으로 작동한다.

jQuery("#dummy").on("load", function() {

}

위 부분 에서는 CALLBACK을 받을수있다.


보통 데이터를 주고받을땐 AJAX가 되는데


파일을 보내거나 할땐 Formdata를 사용하거나해야되서 IE8에선 불가능하다.