2016-12-07 2 views
3

이 작동 :플래시가 한 가지 경우에만 교차 도메인 swf를로드하지 못하게하는 이유는 무엇입니까?

OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://foo.com/flash/flash.swf by requestor from http://bar.com/flash/old.swf 
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://foo.com/flash/flash.swf by requestor from http://bar.com/flash/old.swf 
OK: Policy file accepted: https://foo.com/crossdomain.xml 
OK: Request for resource at https://foo.com/flash/flash.swf by requestor from http://bar.com/flash/old.swf is permitted due to policy file at https://foo.com/crossdomain.xml 

이 실패 :

1) 다른 "에서"SWF 파일,하지만 변화해야하지 :

OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at 
    https://foo.com/flash/flash.swf 
    by requestor from http://bar.com/flash/new.swf 
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at 
    https://foo.com/flash/flash.swf 
    by requestor from http://bar.com/flash/new.swf 
Warning: [strict] Policy file requested from 
    https://foo.com/crossdomain.xml redirected to https://foo.com/crossdomain.xml; will use final URL in determining scope. See http://www.adobe.com/go/strict_policy_files if this causes problems. 
OK: Policy file accepted: https://foo.com/crossdomain.xml 
Error: Request for resource at 
    https://foo.com/flash/flash.swf 
    by requestor from http://bar.com/flash/new.swf is denied due to lack of policy file permissions. 

내가 찾을 수있는 유일한 차이가 anything

2) new.swf의 시도에 대한 이상한 리디렉션 경고

,210

foo.com에서 crossdomain.xml 파일에는 다음이 포함

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all"/> 
<allow-access-from domain="*" secure="false"/> 
<allow-http-request-headers-from domain="*" headers="*" secure="false"/> 
</cross-domain-policy> 

이전 및 나의 새로운 국부 펀드가 타사 SWF를로드하기 위해이 코드를 사용하여 내 :

var strURL:String = this.videoParameters.media_url; 
// replace [timestamp] 
strURL = strURL.replace(
    "[timestamp]", 
    (new Date()).valueOf().toString() 
); 
// use LoaderContext for domain security 
this._oSWFApplicationDomain = new ApplicationDomain(); 
var oContext : LoaderContext = new LoaderContext(
    false, 
    this._oSWFApplicationDomain, // ApplicationDomain must be separate 
    SecurityDomain.currentDomain 
    ); 

this._oSWF = new Loader(); 

var oLoader:LoaderInfo = this.oSWF.contentLoaderInfo; 

// start media load timeout 
this._oManager.startMediaTimer(); 

// listen for when the SWF completely loads itself 
oLoader.addEventListener(
    Event.COMPLETE, 
    this.onLoadComplete, 
    false, 
    0, 
    true 
); 

// listen for any error that may occur while trying to load 
oLoader.addEventListener(
    IOErrorEvent.IO_ERROR, 
    this.onLoadError, 
    false, 
    0, 
    true 
); 

var oURLRequest : URLRequest = new URLRequest(strURL); 

this.oSWF.load(oURLRequest, oContext); 
+0

이전 버전과 새 버전을 다르게 컴파일 한 플래시 플레이어 버전이 있습니까? –

+0

아니요, 우리가 컴파일하는 데 사용하는 대상 플레이어와 플래시 버전이 같습니다. 이들은 모두 여전히 사용 중이며 같은 방식으로 컴파일됩니다. 하나는 다른 하나보다 오래 존재했다. – strider820

+0

어쨌든 뭔가 다른 것이 있습니다. 이전 swf와 동일한 내용을 컴파일하고 올바르게 작동하는지 확인할 수 있습니까? –

답변

2

문제는 인해 아마 로드중인 SWF의 소스 URL에 공백이 있습니다. 시작과 끝 중 어느 것이 문제인지는 모르지만 플래시가 crossdomain.xml을로드 한 다음 보안 오류가 발생합니다. 플래시 예.