2011-07-14 100 views
1

我知道這個問題已被問及ad nauseam;但是,它會出現我卡住了。我在Flash中創建了一個文件上傳器,它已經在本地機器上成功測試過。但是,將它移動到生產服務器並嘗試從另一臺機器訪問它時,php不會被調用。最初有安全異常被拋出,但是在創建crossdomain.xml文件後它們已經被解析。跨域問題。文件上傳和Adobe Flash

我已經在php文件中放置了一些日誌記錄來查看它是否被調用並且沒有骰子。如果在本地運行,它就會被調用,但正如我所說的,跨域不是那麼多。

我的crossdomain.xml文件如下所示。

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
</cross-domain-policy> 

有沒有別的東西,我需要的無論是Flash或服務器上的配置呢?

回答

3

你可以嘗試新的跨域格式:

<?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"/> 

    <!-- Place top level domain name --> 
    <allow-access-from domain="*" /> 
    <allow-access-from domain="*" to-ports="80,443"/> 
    <allow-http-request-headers-from domain="*" headers="*" /> 

</cross-domain-policy> 
+0

我無法通過flash從ie 8發送請求到我的服務器。即使在應用此crossdomain.xml後,我無法在我的服務器上發現請求。任何想法爲什麼? –

+0

你有錯誤嗎?嘗試使用代理(如Charles Proxy)調試調用,然後查看服務器的響應是什麼... – pkyeck

+0

命中未到達服務器。一切工作完美的FF和Chrome。這是特定於當我使用MultipartURLLoader將圖像上傳到服務器時發送圖像數據。 [Here's](http://stackoverflow.com/q/9438046/652895)完整的解釋 –

0

我並沒有配備閃光燈fimiliar,但我開發一些Flex應用程序,所以我可以給你我的經驗來處理跨域問題。

FlashPlayer正在尋找URL域根目錄中的crossdomain.xml文件,例如,

domain.com/crossdomain.xml 

是FlashPlayer想要找到它的地方。因此,您可以通過鍵入上面的url來加載跨域文件。

但是,您可以使用Security.loadPolicyFile(url)從服務器上的其他位置加載crossdomain.xml文件。

你可以嘗試以下的crossdomain.xml:

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

該文件意味着沒有restricition任何東西,所以這是很好的故障排除,但不適合在生產中。

此外,你應該檢查你的代碼,看看你是否已經在你的flash文件中將url從localhost更改爲你的域名。

有時,crossdomain問題與跨域文件無關。

例如: 您是否將chmod服務器上的目錄設置爲777以便進行文件上傳。

你可以參考我的答案在以下問題: flex actionscript not uploading file to PHP page HELP!

你應該給我們,您已收到一些閃光和PHP代碼,也錯誤消息。否則,你的問題太籠統了。