2011-11-15 2 views
0

나는 조금 혼란 스럽다고 생각합니다. domainB.com/secondsubfolder에있는 swf를 domainA.com/firstsubfolder에있는 swf에서로드하고 있습니다.AS3 및 교차 도메인

crossdomain.xml은 항상 domainA.com/firstsubfolder의 "loader"swf 근처에 놓습니다.

로드 된 내용의 루트에 crossdomain.xml을 넣은 경우를 제외하고는 작동하지 않는 것처럼 보입니다. domainB.com/crossdomain.xml.

나는 항상 잘못 했습니까? 아니면 일부 서버 설정 때문입니까? 로드 된 콘텐츠에 다른 도메인 사용 (예 : 다른 서버의 domainB_beta.com/secondsubfolder은 평소와 같이 작동합니다.

어디에서 설정을 변경해야합니까? 서버 설정에 따라 달라 지거나 잘못 되었습니까? 이 예제를 바탕으로

import flash.display.Loader; 
import flash.net.URLRequest; 
import flash.system.Security; 

Security.allowDomain("domainB.com"); 
var context:LoaderContext = new LoaderContext(); 
context.securityDomain = SecurityDomain.currentDomain; 

var loaderMain:Loader = new Loader(); 
loaderMain.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); 
loaderMain.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); 
loaderMain.load(new URLRequest('domainB/secondsubfolder/file.swf'),context); 
addChild(loaderMain); 

function errorHandler(event:ErrorEvent):void { 
trace("errorHandler says: " + event); 

} 

답변

2

, 당신의 도메인 간 파일 http://domainb.com/crossdomain.xml에 있어야합니다 :

은 로더 액션 스크립트 코드입니다. 네가 거기있는 것처럼 보이지만 옛날 스타일이야.

<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="master-only"/> 
    <allow-access-from domain="*"/> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

또한, 당신은에서 Security.allowDomain 한 세트 만,뿐만 아니라에서 Security.allowInsecureDomain 추가하려고 : 아마도처럼 뭔가를 업데이트하려고합니다. 연결시 HTTPS를 사용하고 있지 않습니다.

마지막으로 피들러 또는 찰스를 실행하여 네트워크 트래픽을보십시오. crossdomain.xml 요청을 찾고 어떤 응답을 받고 있는지 확인하십시오. 이것은 주제에 대한 추가 설명을 줄 수 있습니다.

+0

thnx ... 아프다 시도하고 결과를 게시하십시오! –