http://cafe.naver.com/q69/62367

원격 파일 가져오기 (자바스크립트 속이기)


 


asp에서 원격지의 xml파일을 가져와야하는 경우가 있습니다. 하지만 아시다시피 순수 asp로는 네트웍 관련 작업이 불가능합니다. 

이럴 때 사용할 수 있는 컴퍼넌트가 Microsoft.XMLDOM 입니다. 이 컴퍼넌트는 IE만 설치되어 있으면 어느 피씨에나 있기에 구하는데 어려움이 없습니다.

제가 이 코드를 만들게 된 이유는 (가) 서버의 자바 스크립트에서 (나) 서버의 XML을 읽어 DHTML 메뉴를 구성하고자 했지만, (가)와 (나)가 서로 다른 서버이어서 보안 문제 때문에 XML을 로드할 수 없었습니다.  

(가)의 자바스크립트:
<script>
a.load("
http://(나)/~cybaek/menu.xml");   <-- 오류
</script>

따라서, XML이 마치 같은 서버에 있는 것처럼 속이고 asp가 네트웍을 통해 자원을 반환하는 방식을 취했습니다.

(가)의 새로운 스크립트:
<script>
a.load("/getXml.asp?id=cybaek"); <-- (가)에 있는 XML이라 착각 따라서 동작.
</script>

<OBJECT PROGID="Microsoft.XMLDOM" RunAt=Server Id=obj></OBJECT>
<%
Response.ContentType = "text/xml"
obj.async = False
obj.Load("
http://서버이름/menu.xml")
Response.Write Replace(obj.xml, "<?xml version=""1.0""?>", "<?xml version=""1.0"" encoding=""euc-kr""?>")
%>