Error #2044: Unhandled SecurityErrorEvent:. text=Error #2048: Security sandbox violation: http://kipos.bluecodestudio.com/holdthebomb/HoldTheBombWeb.swf cannot load data from http://23.29.126.76:8000/socket.io/1/?t=1356891827452.
at io::Socket/doHandshake()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:139]
at io::Socket/connect()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:110]
at io::Socket()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:90]
at io::IO$/connect()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/IO.as:36]
at MainController/endOfbluecodeSplash()[/Users/airrider3/Dropbox/Projects/Kipos/Minigames/HoldTheBombWeb/src/MainController.as:41]
at bluecodeSplash/endOfSplash()[/Users/airrider3/Dropbox/Projects/Kipos/Minigames/HoldTheBombWeb/src/bluecodeSplash.as:55]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at com.greensock.core::TweenCore/complete()[D:\_Flash\_AS3\src\com\greensock\core\TweenCore.as:178]
at com.greensock::TweenLite/renderTime()[D:\_Flash\_AS3\src\com\greensock\TweenLite.as:477]
at com.greensock.core::SimpleTimeline/renderTime()[D:\_Flash\_AS3\src\com\greensock\core\SimpleTimeline.as:93]
at com.greensock::TweenLite$/updateAll()[D:\_Flash\_AS3\src\com\greensock\TweenLite.as:642]
我正在使用 Flash Builder,这是一个 ActionScript 项目,它使用 Socket.IO 模块连接到运行 NodeJS 的服务器。
要将 Socket.IO 与 AS3 连接,我正在使用以下库https://github.com/sbquinlan/AS3-Socket.IO-XHR-Polling ,该库在本地测试时从 Flash Builder 中完美运行。
但是,如果托管在我的域[http://kipos.bluecodestudio.com/holdthebomb/]上,我想它会引发这个 SecurityErrorEvent 因为我没有正确使用任何 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="master-only"/>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
我在服务器上的不同地方都有它。(应该在托管客户端上吗?)。是的,游戏托管在 bluecodestudio.com 上,而游戏的服务器在 IP 23.29.126.76 上,在端口 8000 上运行。
如果是跨域策略错误的情况,是否有人愿意解释应该采取什么措施来解决问题?
感谢您的关注。
更新1:
我设置了一个监听 843 端口的服务器,提供跨域文件,但我可以看到 Flash 没有尝试加载它。(我测试了命令python -c 'print "<policy-file-request/>%c" % 0' | nc 23.29.126.76 843
并检查了策略服务器确实是如何工作的。
为什么 SWF 不尝试加载跨域策略文件?