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为什么不尝试加载跨域策略文件?
哇 我只是在Socket.IO文档上阅读了此内容:“闪存策略端口默认为10843
默认情况下,Socket.IO客户端将检查服务器上的端口10843,以查看是否允许flashsocket连接。Adobe Flash
Player通常使用843作为默认端口,但我们决定默认为非根端口。”
这就是为什么它没有尝试从端口843加载文件的原因…
综述 富因特网应用程序(Rich Internet Applications, RIA)应该遵循Adobe的 crossdomian.xml 策略来控制跨域访问数据和使用服务,例如Oracle Java,Siverlight和Adobe Flash。因此,一个域名授予另一个不同域名远程访问自己的服务的能力。但是,这些策略文件中描述的访问控制被糟糕配置。糟糕的策略配置会导致跨站点伪造请求攻击(CSR
不幸的是,一个第三方服务IFRAME我仍然需要在我的页面是不加载了。有一种方法允许第三方域,即使嵌入策略打开? 谢了。达里奥。
问题内容: 我最近一直在四处寻找,以找到一种在nodeJS和PHP之间进行通信的好方法。这里是一个想法:nodeJS还是一个很新的东西,仅使用它开发一个完整的应用程序可能有点棘手。而且,您可能只需要项目的一个模块(例如实时通知,聊天等),就可以使用PHP来管理所有其他内容,因为它可能对您来说更容易(而且您可以利用现有框架,例如CodeIgniter或Symfony)。 我想有一个简单的解决方案;
我最近一直在寻找一种在nodeJS和PHP之间进行通信的好方法。这里有一个想法:nodeJS仍然是相当新的,仅仅用它开发一个完整的应用程序可能有点棘手。此外,您可能只需要用于项目的一个模块,如实时通知、聊天等,而您希望用PHP管理所有其他内容,因为它对您来说可能更容易(而且您可以利用现有的框架,如CodeIgniter或Symfony)。
假设我拥有2个域www.xyz.comajax.xyz.com.我想从前缀为www的站点加载我的超文本标记语言和javascript,然后向前缀为ajax的站点执行ajax请求。同源策略会阻止我的ajax请求从www.xyz.comajax.xyz.com还是在不使用访问控制允许源标头的情况下工作。 问候
然后,可以通过domain.com/socket/访问socket.io(获得消息Welcome to socket.io)。另外,静态内容也被交付,但是我无法找到通过端口80加载“socket.io/socket.io.js”文件的任何方法。 在干净的方式上这可能吗?