新聞中心
本文和大家重點(diǎn)討論一下Flex跨域訪問(wèn)的沙箱問(wèn)題,當(dāng)Flex訪問(wèn)WebService服務(wù)時(shí),在本地能夠正常訪問(wèn),當(dāng)部署到web容器中發(fā)布為web服務(wù)后,再調(diào)用WebServicIE,此時(shí)就會(huì)被拒絕訪問(wèn),這就是Flex跨域訪問(wèn)的沙箱問(wèn)題,下面介紹一下解決方案。

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有大通免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Flex跨域訪問(wèn)的沙箱問(wèn)題
當(dāng)Flex訪問(wèn)WebService服務(wù)時(shí),在本地能夠正常訪問(wèn),當(dāng)部署到web容器中發(fā)布為web服務(wù)后,再調(diào)用WebServicIE,此時(shí)就會(huì)被拒絕訪問(wèn),這就是Flex跨域訪問(wèn)的沙箱問(wèn)題,為了解決Flex跨域訪問(wèn)WebService的問(wèn)題,可采用如下方案:
首先,F(xiàn)lex跨域訪問(wèn)被拒絕是因?yàn)樘峁┓?wù)方?jīng)]有配置安全策略文件,即crossdomain.xml,如果你不想用crossdomain.xml就要用到代理,即自己寫(xiě)一個(gè)后臺(tái)讀取webservice,然后提供給自己的flex應(yīng)用,因?yàn)樵趂lashplayer中,要Flex跨域必須要有策略文件。考慮到flashplayer升級(jí)到9.124之后,加強(qiáng)了安全性,之前的crossdomain.xml的寫(xiě)法發(fā)生了變化,以下就是該文件的完整寫(xiě)法:
表示該服務(wù)允許任何外域來(lái)訪問(wèn)。
關(guān)于crossdomain.xml的放置目錄問(wèn)題,有如下解決方案,可放置在:
1)如果這個(gè)目錄是容器的根目錄,可以通過(guò)以下的url訪問(wèn)crossdomain.xml:
http://localhost:8080/crossdomain.xml。
2)如果crossdomain.xml不是放在根目錄下,而是在某個(gè)webapp下面,在flex中就需要在初始化的時(shí)候應(yīng)用
Security.loadPolicyFile("http://localhost:8080/xx/crossdomain.xml");
其中xx為webapp的名稱(chēng)
這樣,外部Flex跨域訪問(wèn)該服務(wù)發(fā)布的WebService時(shí),flashplayer首先找的就是crossdomain.xml文件,若安全機(jī)制設(shè)置為允許訪問(wèn),則訪問(wèn)成功。
當(dāng)前題目:Flex跨域訪問(wèn)沙箱問(wèn)題解決方案
本文來(lái)源:http://fisionsoft.com.cn/article/cohhcpc.html


咨詢(xún)
建站咨詢(xún)
