2010-12-05 26 views
0

我有一個swf,我創建了幾個HTML文章。當我在本地運行並編譯swf時,它成功地發佈到我的域中託管的PHP代碼。然而,當我上傳我的swf到我的域名,然後改變embed標籤以獲得我託管的swf的完全合格的路徑時,swf將正確加載,但它會將任何HTML帖子發到我的PHP腳本。我有一個帶有完全限定url的embed標籤的原因是,我的目標是能夠將html嵌入代碼放置在多個不同的站點上。Flex HTML發佈錯誤 - 安全性問題?

我讓它在單個遠程站點上工作,並且在其中有一個通配符crossdomain.xml文件。但是,當我嘗試將crossdomain.xml應用於任何託管網站或本地計算機時,在我使用具有完全限定URL的嵌入時,沒有任何內容運行,如果我只是本地託管的計算機上的swf,則HTML後期工作正好。

我覺得這與crossdomain.xml文件有關,但我想我不理解安全模型的某些方面。

因此,我的目標是能夠將嵌入的HTML代碼粘貼到許多其他網站上的完全合格的swf(例如,「http://www.abc.com/myswf.swf」),並擁有它會將標準HTML帖子發送到我的主頁(http://home.com)。

感謝您對這一個的任何幫助。我非常接近,就像我說我在一個遠程站點上工作,但我不知道如何。我發佈嵌入代碼的所有其他網站都失敗。

回答

1

好吧,我正在編輯我的答案,遵循你剛纔給出的例子。

根據我得到的錯誤報告,問題是不允許從swf到託管swf的站點的ExternalInterface調用。

它在第二個示例中起作用,因爲調用是在同一個沙箱內進行的。

從文檔摘自:

SecurityError — The containing environment belongs to a security sandbox 
    to which the calling code does not have access. To fix this problem, 
    follow these steps: 
    In the object tag for the SWF file in the containing HTML page, 
    set the following parameter: 
    <param name="allowScriptAccess" value="always" /> 

    In the SWF file, add the following ActionScript: 
    flash.system.Security.allowDomain(sourceDomain) 

您可能還需要檢查allowNetworking參數,在您的嵌入代碼...

+0

Unforunately這是不是一種選擇。我沒有選擇將swf上傳到每個站點。以下是正在發生的事情的實例...因此,這裏是外部網站的鏈接,它不能與PHP腳本進行通信。 http://ryan.d3-systems.com/?p=148和這裏是完全相同的腳本工作正常,http://securedmark.com/demo.php。你可以看到我有一個crossdomain.xml這裏http://ryan.d3-systems.com/crossdomain.xml和這裏http://d3-systems.com/crossdomain.xml。所以我無法弄清楚我在這裏做錯了什麼,因爲它在託管網站上效果很好。 – Ryan 2010-12-06 02:59:09