외부 링크로 연결을 하는 경우, 아이프레임으로 불러오는 경우, jquery로 ajax load를 하는 경우 등 어쩔 수 없이 도메인을 바꿔야 하는 경우가 있습니다.
예를들어 ajax는 샌드박스 보안이라는 것이 있어서 다른 도메인의 페이지를 부르지 못하도록 하는 제한이 있기 때문입니다.
도메인을 강제로 바꿔서 통일 시키면 이런 문제를 해결할 수 있습니다.
1. 일반적인 방법
가장 흔하게 사용하는 것은 자바스크립트에서 문서의 경로를 선언해 버리는 것입니다.
그러나 ajax의 경우에는 이 마저도 먹통이 되는 경우가 있습니다.
하지만 가장 쉽고 흔한 방법입니다.
<script language=javascript>
document.domain = "www.A.com";
</script>
이렇게 해 놓으면 www가 없는 A.com이라고 해도 www.A.com로 인식하고 페이지가 불려집니다.
단, 제일 아래 4번의 주의사항을 꼭 읽어봐야 낭패를 당하는 경우가 없습니다.
2. 도메인을 일치 시키는 방법
예상되는 주소경로가 뻔할 때는 아예 아래와 같이 하는 것이 더 확실합니다.
<script language=javascript>
var url1 = 'www.A.com';
var url2 = 'A.com';
if( document.URL.match(url1) ) document.location.href = document.URL.replace(url1, url2);
</script>
방문자가 A.com으로 접속하길 원하는데 www.A.com으로 접속한다면 위와 같이 하면 강제로 맨처음이 A.com으로 바뀝니다.
예를들어, www.A.com/search?query=test라고 주소URL에 표시되더라도 강제로 A.com/search?query=test로 바뀌게 되는 것입니다.
url1과 url2에 원하는 도메인주소를 입력하세요.
if 부분에서 url1과 url2를 통일시켜서 url2로 만들어 줍니다.
url1이 문제가 되는 경로주소이고 url2가 원하는 경로주소입니다.
만약, www 뿐 아니라 blog, img등 여러가지 문제가 되는 경로가 있더라도 위에서 url3, url4 등으로 계속 늘려가며 적용하면 됩니다.
3. 기타 조언
JSON이나 그 밖의 여러가지 방법이 있습니다.
JSON은 내용이 길기 때문에 다음에 언급하기로 하겠습니다.
4. 주의사항
그런데 첫번째 방법인 document.domain = "주소"; 방법을 이용할 경우에는 주의할 점이 있습니다.
어떤 페이지에서는 유용할지 몰라도 사이트 내의 도메인 경로가 다 얽히기 때문에 다른 페이지에서는 저장이 안 된다던지 많은 문제를 발생 시킬 수 있습니다.
그러므로 document.domain는 한 페이지에서 적용하였으면 모든 페이지에 적용하는 것이 어쩔 수 없는 방법입니다.
또, 아이프레임의 경우 부르는 부모페이지에만 저걸 적용하면 되는 것이 아니라 불려지는 아이프레임 내의 문서에서도 저렇게 document.domain를 선언해 주어야 합니다.
다만, 두번째 방법인 document.URL.match를 이용하는 경우에는 부모창에서만 선언해서 사용이 가능합니다.
★ 이 정보가 도움이 된다면 아래의 공감을 부탁드립니다! ^^