我的Flex應用程序託管在http://<ip>:8080/MyApp/Login.html
,當我去那裏時,有一個請求http://<ip>:8080/crossdomain.xml
被創建,並且請求https://<ip>:8080/crossdomain.xml
。當我嘗試使用遠程Java對象調用到同一臺服務器並從中獲取資源時,會發生這種情況。我不在8080端口託管HTTPS,因此此HTTPS通話將失敗。Flex - 請求crossdomain.xml正試圖在http端口上使用https並且超時
問題是https呼叫將有時需要很長時間才能失敗(它通過tomcat連接器中的connectionTimeout長度失敗)。其他時候很快就會失敗。但是,在這種情況下,確實需要很長時間才能失敗,因爲我在等待這些資產和遠程對象調用數據,所以頁面並未完成加載。
我試圖建立的crossdomain.xml的有力檢索與它裏面的以下內容:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
隨着AS3代碼:
Security.loadPolicyFile(browserUrl+"/assets/crossdomain.xml");
這是被稱爲應用程序的initialize
事件。上述強大的crossdomain.xml文件正在根據chrome和wireshark被正確調用和檢索,但服務器根目錄的默認位置仍在嘗試中,並且https嘗試仍然超時。並且該應用程序在嘗試超時之前未完成其裝入。
如果Flex應用程序由您撥打電話的相同域提供;你根本不需要加載一個crossdomain。你確定你沒有試圖在應用內進行HTTPS調用嗎? – JeffryHouser
據我所知,crossdomain應放在根目錄下,而不是放在子文件夾內(除非你想爲子文件夾指定一些權限,我猜)。 – user1875642
@ Reboog711我也這麼認爲,但我確實從Chrome的開發者工具中看到了它的呼籲。而且肯定要花上10秒左右才能超時。 我已經檢查了所有的代碼,並不相信我正在強有力地打這個電話。 –