2010-03-09 3 views
0

누군가 나를 도와주세요. 2 개의 애플리케이션 AAA 및 BBB가 있습니다. AAA의 홈페이지에는 애플리케이션 BBB를 표시하는 iFrame이 포함되어 있습니다. AAA에 로그인 할 때 BBB (싱글 사인온)에 로그인 할 때 동일한 로그인 세부 정보를 사용하고 AAA 홈페이지의 pageload에는 BBB 홈페이지도 iFrame에로드해야합니다. 자바 스크립트를 사용하여 BBB의 로그인 페이지 양식 요소에 액세스하여 로그인 데이터를 입력하고 제출하려고했습니다. 하지만 브라우저가 나에게 '액세스가 거부되었습니다'라는 오류를 표시합니다. 약간의 독서를했으며 크로스 도메인 통신이 브라우저에서 허용되지 않는다는 사실을 알게되었습니다. 누군가이 문제를 어떻게 해결할 수 있는지 말해 줄 수 있습니까?iframe에서 부모와 자식 간의 크로스 도메인 액세스

답변

1

내 대답은 here이 도움이 될 것이라고 생각합니다.

HTML5 supports messaging하지만 HTML5는 현재 브라우저 지원이 제한되어 있습니다.

0

JSONP를 사용하여 도메인 간 제한을 피할 수 있습니다. 좋은 설명이 over here입니다.

JSONP를 여러 번 사용하여 여러 도메인에서 JavaScript를 사용했습니다.

2

좋아, 부모와 자식 간의 통신을 지원하기 위해 부모와 자식 간 도메인 간 라이브러리를 확장했습니다. 그것은 당신이 아이에서 부모에게 의사 소통을 할 수 있어야합니다.

내가하고있는 child-to-parent 통신은 자식 (child) 내부 iframe에로드 된 부모 (xdParent라고 부름)가 호스팅하는 크로스 도메인 파일을 사용합니다. 이 페이지 (xdParent는) 다음, 내가이 일을 해요 낮은 iframe이 소통 할 수 그래서

parent.parent.whateverItWantsTo

를 호출

  1. 아이가 자신의 도메인 간 파일을 호스팅해야합니다 (내가 전화 할게 이 xdChild)
  2. 아동은 iframe로드, 그것은 iframe을
  3. xdParent 후 부모와의 윈도우 객체를 등록합니다 (즉, parent.parent.someReservedVariable = 창에서 xdParent로드)
  4. 부모는 뭔가를하고자 할 때 자식에게 parent는 someReservedVariable을 사용하여 xdCh를로드합니다. xdParent
  5. xdChild의 내부 ILD는 하위 페이지 (즉, parent.parent.doWhateverItWantsTo)이 이해할 수

희망으로 무언가를. 불행히도 당신을 위해 간결한 예제를 만드는 데 시간을 낭비하고 싶지는 않지만 질문이 있으면 알려주십시오.

+0

여기가 가장 좋은 답변입니다. 나는 3 일 동안 무언가를 얻으려고 노력했다. 죽은 모든 것을 끝내고 나는 너에게서 이것을 발견했다. 명성, 포기하지 말아 줬어! – MikeSchinkel

+0

더 이상 작동하지 않습니다. 나는 너에게 나머지 문제를 구할 것이다. 천재 솔루션 비록! – Jompis

1

하지 마십시오.

그냥 좋은 생각이 아닙니다.

도메인 간 iframe과 관련된 보안상의 취약점이 수정 될 수 있습니다.