2014-02-21 2 views
1

기본적으로 동일한 조직에 속하지만 다른 도메인 이름으로 호스팅 된 두 번째 웹 사이트를 Iframe에 표시하려고합니다. 그리고 iframe에서 부모 프레임으로 일부 데이터를 전달하려고합니다.iframe에서 동일한 출처 정책을 극복하는 방법은 무엇입니까?

부모 프레임 = foo.com, iframe이 = bar.com

내가 나에게 동일 출처 정책 오류를 제공하는, parent.setData(data)를 통해 iframe 대응의 데이터를 전달하려고하면

. 심지어는, 그러나

<script src="http://foo.com/js/wrapper.js"></script> 
<script> 
    Foo.setData(someData); 
</script> 

: 그래서

var Foo = {}; 
Foo.setData = function(data) 
{ 
    parent.setData(data); 
} 

지금 bar.com 내 iframe이가하고있다 :

그래서 나는이 기능을 포함 foo.com/js/wrapper.js에서 호스팅이 코드의 래퍼를 만들어 심지어 wrapper.js이 상위 도메인에서 호스팅되는 경우에도 parent.setData 줄에 보안 오류가 표시됩니다.

이 문제를 극복하는 다른 방법이 있습니까?

+1

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage – Quentin

+0

@Quentin 모든 예제 코드가있을 수 있습니까? –

+0

해당 페이지에 "예제"라는 제목의 전체 하위 섹션이 있습니다! – Quentin

답변

5
당신은 postMessage를 찾고 있습니다

, 그 여기에 읽을 : https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

편집 : 죄송합니다,이 정책은 주위를 얻기 위해 같은 일을

+0

서버가 'www'를 강제로 만들지 않거나 'window.top.location'의 상위 창을 구문 분석하여 targetOrigin으로 사용할 수 있습니다 (물론 이것이 허용 된 도메인) –

1

또 다른 재미있는 방법을 말하는 의견을 모두 보지 않았다 child window.location.hash를 납치하면 두 스크립팅 엔진에서 모두 볼 수 있습니다.

관련 문제