이 문제에 대한 해결책을 요약하고자합니다. 유용한 URL here을 찾을 수 있습니다.
JavaScript를 가져올 때 기본적으로 <script>
태그 페이지를 통해 코드를 주입합니다. 이 태그를 통해 가져온 항목은 전역 컨텍스트에서 즉시 실행됩니다. 따라서 JavaScript 파일을 전달하는 대신 HTML 태그가 아닌 페이지를 반환하는 웹 사이트에 URL을 전달하고 대신 코드에서 콜백을 호출하는 JavaScript 코드 텍스트를 반환하는 페이지를 전달합니다.
URL 매개 변수를 사용하면 페이지에 '콜백'이 반환 할 내용과 콜백에 들어가야하는 매개 변수를 알릴 수 있습니다. 예를 들어이이 평가
는
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m1=myParam"></script>
의 'SRC'매개 변수에 의해 반환 된 페이지의 내용은 다음과 같습니다
서버 측에
myCallback(myParam);
, 당신은보다 우선 해당 URL에서 사이트를 만들 것 OnLoad equivalent (사용중인 서버 측 언어와 함께). 페이지 HTML 대신 OnLoad는 위의 콜백 호출과 일치하도록 URL 매개 변수를 가져 와서 다시 Swizzle합니다.
대체가 수행되면 클라이언트가 페이지를로드 할 때 콜백이 즉시 호출됩니다. 이것의 이점은 'src'URL이 호스팅 된 페이지의 도메인과 일치 할 필요가 없다는 것입니다.
<script type="text/javascript">
var myCallback = function(myParam) {
alert("this was called across domains!");
};
</script>
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m=myParam></script>
는 Fiddler2 같은 도구를 확인하고이 정말 나를 위해 작동하지 않았다 마법 – epascarello
를보고 : 여기
클라이언트 HTML 페이지가 마지막에 어떻게 보일까이다. 나는 그것을 시도하고 여전히 크롬과 파이어 폭스에서 허가 오류를 부정했다. – Merritt
@Merritt - 이것을 디버깅해야 할 것입니다. 웹 브라우저에서 프록시 페이지를 탐색하면 내용이 JavaScript 호출 인 텍스트를 다시 가져 옵니까? –