울어라휘파람새야

document.domain이 하는 역할이 뭔가요 본문

밥줄/JavaScript

document.domain이 하는 역할이 뭔가요

꼬꼬리코 2009. 9. 30. 11:36

웹페이지에 종속된 도메인을 참조하거나 수정하는 역할입니다.
도메인이라는게 좀 생소하시겠지만... 예를 들어 설명하는게 아무래도 낫겠군요.

하나의 웹사이트에서 두개의 서버를 사용하고 있다고 칩시다. 회사는 abc라는 회사이고 서버는 server1, server2 가 있죠. 홈페이지는 server1이지만, 중요기능은 server2 에도 있습니다. 두가지의 URL은 server1.abc.com 이고, server2.abc.com 이겠죠? 그런데, 홈페이지 구성상 프레임이나 새창 등으로 이 서버간을 넘나드는 구성을 사용했을 때, 스크립트로 각 서버간에 폼값 참조나 뭐 그런게 불가능합니다. 허용되지 않은 억세스라고 거부가 뜨죠. 오류가 발생합니다. 즉, server1.abc.com 이 부모창인데, 새창으로 server2.abc.com 을 열었습니다. 새창에서 어떤 값을 사용자로부터 받아서 부모창에 있는 폼에 그 값을 전달하려고 하면 억세스 거부 스크립트 오류가 뜬다는 것이죠.

이런 일을 방지하기 위해서는 이 두개의 웹페이지의 도메인을 일치시켜줄 필요가 있습니다. 도메인이 같은 두개의 웹페이지 간에는 억세스가 자유스럽게 되죠. 그래서 각 페이지에 초반에 document.domain = "abc.com"; 이런 식으로 뒷부분의 공통되는 도메인을 일치시켜주면 이런 스크립트 오류가 뜨지 않는겁니다.
단, 둘다 진짜로 abc.com 에 종속된 페이지여야 한다는 제한이 따르죠.

이해가 되셨는지 모르겠습니다.

즉, server1.abc.com/test1.htm 파일 최상단과 server2.abc.com/test2.htm 파일 최상단에

<script>document.domain='abc.com';</script> 소스를 추가해 주면 됩니다.


출처 : http://oybso.tistory.com/24?srchid=BR1http%3A%2F%2Foybso.tistory.com%2F24

Comments