2011-06-15 52 views
0
試圖訪問遠程數據時,在域 http://domain1.com/myroot/

我的SWF應用程序必須使用資源,從域http://domain2.com/myroot2/安全錯誤從SWF

當SWF嘗試訪問的資源來自二級域名,它得到的SecurityError「錯誤#2048:安全沙箱衝突」。這是因爲我的應用程序默認情況下嘗試從http:/domain2.com/crossdomain.xml加載crossdomain.xml。

我的問題是,我沒有訪問domain2.com根目錄放在那裏crossdomain.xml。我只能將它放在http:/domain2.com/myroot2/目錄中。

我的問題是:如何強制我的swf應用程序在http:/domain2.com/myroot2/中搜索crossdomain.xml?

P.S. Security.loadPolicyFile(「http://domain2.com/myroot2/crossdomain.xml」)不起作用,因爲默認情況下使用metapolicy「master-only」,它忽略了所有Security.loadPolicyFile的用法。

回答

0

Flash的新的沙箱安全要求你總是對服務器的根目錄的跨域策略文件。如果您打算在子目錄中放置跨域文件,則根目錄的主跨域文件必須允許在服務器上使用該跨域文件。

+0

查看如何在這裏:http://blancer.com/tutorials/30030/quick-tip-a-guide-to-cross-domain-policy-files/ – Flassari 2011-06-15 16:40:56

0

的loadPolicyFile應該這樣做

Security.allowDomain('http://domain2.com'); 
Security.loadPolicyFile('http://domain2.com/myroot2/pf.xml');