0

我需要在「xx.com」服務器上託管我的全閃存SWF站點。但所有圖形和聲音必須從「yy.com」服務器上加載。需要在服務器上安裝SWF,但需要在另一個服務器上安裝數據

在我的AS3代碼,所有數據通過絕對地址加載,如:

http://yy.com/file1.jpg 
http://yy.com/file2.jpg 

如果我在本地運行的SWF,無論是從Flash創作工具,或本地.html文件中,或者通過雙擊swf,它工作正常。所有數據均從「yy.com」下載,並且該網站正確顯示。

如果我上傳「xx.com」上的swf並將其加載到那裏,它將不起作用。

我已經創建瞭如下的crossdomain.xml文件

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

,並在

http://yy.com/crossdomain.xml 

結果上傳是很奇怪:它似乎開始加載1-2圖片關閉「yy.com」,但隨後停止。此行爲發生在有或沒有crossdomain.xml文件。

我試圖以某種方式達到目的嗎?我的問題是,xx.com的空間非常有限,所以我可以上傳swf和/或html,而不是實際的數據(這是很多MB)。

+0

嘗試安裝Fiddler Web Debugger,如果你在Windows或Charles上,如果你在Mac上。看看是否訪問了跨域文件。然後檢查資產是否被訪問。 – 2012-03-29 20:57:48

+0

你的swf是通過https服務的嗎?如果是這樣,您需要在cross-domain.xml中使用'secure =「false」' – 2012-03-29 21:11:53

+0

另外,請檢查調試器是否提供任何錯誤 - 通常,如果它是跨域問題,您應該得到調試控制檯中拋出的安全沙箱錯誤。 – 2012-03-29 21:12:42

回答

0

的解決方案是一個LoaderContext添加到負載功能在裝載機的對象,像這樣:

context = new LoaderContext(true); 
loader.load(new URLRequest(name), context); 

只有這樣,是crossdomain.xml文件已檢查。

1

嘗試使用此作爲crossdomain.xml文件。這是我使用的一個,它一直爲我工作。它有額外的允許-HTTP請求報頭,從節點

<?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="*" /> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 
1

請務必設置允許所有內您的SWF的

Security.allowDomain("*");