none
IE9에서 (Ajax) ActivexObject 사용이 안됩니다. RRS feed

  • 질문

  • 안녕하세요. 개발자님..

    커뮤니티 사이트에 글을 남겼다가 MSDN 포럼을 통해 문의해야한다고 해서 다시 문의합니다.

    다름이 아니고 특정 기능에 Ajax 비동기방식으로 서비스하고 있는데 몇년간 문제 없이 서비스하는 기능입니다.

    최근 한대의 컴퓨터(버전:IE9)에서 문제가 발생하는 현상이 나타났습니다.

    원인을 찾다보니 ActivexObject 사용에 문제가 있어서 다양한 테스트와 설정도 변경해보았는데

    해결이 되지 않아서 질문글을 작성하게 되었습니다.

    먼저 ActiveXObject 생성하는 소스 영역을 간략하게 작성해보면

    ==========================================

    function createHttpRequest() {

        if (window.ActiveXObject) {

            try {

                      alert("debug:::::::1");                             <---------------------------------- 1

                      return new ActiveXObject("Msxml2.XMLHTTP");

            } catch (e) {

                      try {

                            alert("debug:::::::2");                        <---------------------------------- 2

                            return new ActiveXObject("Microsoft.XMLHTTP");

                      } catch (e2) {

                            alert("debug:::::::3");                         <---------------------------------- 3

                            return null;

                      }

            }

        } else if (window.XMLHttpRequest) {

            return new XMLHttpRequest();

        } else {

            return null;

        }

    }

    ==========================================

    ActivexObject를 사용하려면 보안 영역의 IE 보안 설정하여야 하는 것을 확인하고

    인터넷옵션 > 보안 > 인터넷/로컬인트라넷 > 사용자 지정 수준 > ActiveX 컨트롤 및 플러그 인 영역에서

    스크립팅하기 안전한 것으로 표시된 ActiveX 컨트롤 스크립팅* 에 사용함으로 선택이 되어있어야 하는것으로 알게되었습니다.

    위 소스로 간단한 테스트 화면을 만들어서 문제의 컴퓨터를 확인해보니까

    debug:::::::1

    debug:::::::2

    debug:::::::3 순으로 alert창이 뜹니다.

    하지만 문제의 컴퓨터 인터넷 설정에는 "스크립팅하기 안전한 것으로 표시된 ActiveX 컨트롤 스크립팅*" 에 사용함으로 표시되어 있더라고요.

    그래서 제 컴퓨터로 사용함 선택상태에서는 정상적으로 실행(debug:::::::1 알림창 후 정상적으로 ActiveXObjext 생성)되었고

    IE설정(위 설정)을 사용안함으로 선택하고 실행해보니

    문제의 컴퓨터와 동일한 현상(debug:::::::1, 2, 3)이 발생되는 것을 확인하였습니다.

    혹시나 해서 문제의 컴퓨터 인터넷 설정을 다음과 같이 변경해보았습니다.

    "스크립팅하기 안전하지 않는 것으로 표시된 ActiveX 컨트롤 초기화 및 스크립팅"을 사용(안전하지 않음)으로 해서

    위 소스를 실행해보니 정상적으로 debug:::::::1 알림창 후 정상적으로 ActiveXObjext 생성되는 것을 확인하였습니다.

    하지만 이 옵션은 보안 노출에 심해서 사용할 수 없고 더 이상 어떻게 진행해야할 지 고민중입니다.

    원인까지는 찾았는데 해결방법을 못 찾아서 개발자분들께 질문을 올립니다.

    마지막 방법으로 IE9 브라우저를 재 설치를 진행해볼까도 고민은 하고 있습니다.

    이해하실 수 있게 글을 작성을 했는지 모르겠습니다.

    개발자님들의 도움 부탁드립니다.

    감사합니다.

    2016년 11월 4일 금요일 오전 4:57