다른 도메인에서 함수 호출

-- JavaScript 2014. 11. 24. 14:23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://test1.aaa.com/a.jsp에서 http://test2.aaa.com/b.jsp을 팝업으로 열었다고 했을 때
b.jsp에서 opener인 a.jsp의 javascript를 실행하고 싶을 경우가 있다.

이런 경우 b.jsp에서 a.jsp의 javascript 함수를 호출한다면 "사용권한이 없습니다"라는 에러가 발생한다.
서로 간의 도메인이 틀리므로 (심지어는 2차 도메인만이 틀린 경우라도) 발생하는 에러이다.

해결 방법은 각각의 도메인의 소스를 수정할 수 있다면 도메인을 같도록 지정하여 해결이 가능하다.


[test1.aaa.com/a.jsp]

document.domain = "aaa.com";

function openPopup() {
   window.popup("testPopup", "http://test2.aaa.com/b.jsp", "옵션");
}

function callbackFunc(data) {
   alert("OK:" + data);
}


[test2.aaa.com/b.jsp]

document.domain = "aaa.com";

$(document).ready(function() {
    window.opener.callbackFunc("test");
});

posted by 어린왕자악꿍