티스토리 뷰

* 내부 연동 프로젝트 진행 중 크로스 도메인 메시징(Cross-Domain Messaging) 문제에 봉착했다. A 시스템의 페이지에서 IFRAME 또는 팝업의 형태로 B 시스템의 페이지를 호출하는 구조인데 A에서 B의 JavaScript 메써드를 실행하도록 되어 있다. 문제는 A 시스템과 B 시스템의 도메인이 서로 틀리기 때문에 A와 B의 window 객체는 서로 접근이 불가능하여 오류가 발생한다.

* 각 시스템의 도메인이 일치하고 추후에 도메인이 변경될 가능성이 없다면 각 시스템의 페이지에 window.domain 프라퍼티를 명시적으로 일치시켜주면 문제는 간단히 해결된다.

* 하지만 각 시스템의 도메인이 일치하지 않는다면 다른 방법을 찾아야 한다. 구글링을 통해 window.postMessage 메써드를 활용하는 방법을 찾았다. 크로스 도메인 환경에서 각 시스템의 페이지가 통신할 수 있는 방법을 제공한다.

* window.postMessage를 랩핑하고 브라우저 호환성까지 고려하여 보다 편리하게 사용하도록 개발된 easyXDM 라이브러리도 있다. 프로젝트에 사용한다면 easyXDM 사용이 적절하다고 생각된다.

Cross-Domain Communication with IFrames (by Mahemoff)
http://softwareas.com/cross-domain-communication-with-iframes

window.postMessage
https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

easyXDM
http://easyxdm.net/wp/
https://github.com/oyvindkinsey/easyXDM


댓글
댓글쓰기 폼