【发布时间】:2012-01-31 16:42:31
【问题描述】:
我实现了一个简单的 Flex 应用程序,它尝试通过 WebSocket 协议连接到服务器。在 Flash Builder 4.6 调试器中运行应用程序一切正常。所以我在我的服务器上安装了应用程序,现在我在一段时间后收到错误 #2048。 #2048 似乎是关于安全性的错误。
服务器提供这个crossdomain.xml:
更新
<?xml version="1.0" encoding="UTF-8" ?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd">
<allow-access-from domain="*" to-ports="*" />
<site-control permitted-cross-domain-policies="master-only" />
</cross-domain-policy>
编辑:通过调用提供
Security.loadPolicyFile('http://myserver:8081/crossdomain.xml');
我可以在 Web 服务器日志中看到客户端加载它。
我使用AS3WebSocket 作为 Flex 的 WebSocket 实现。
这就是我设置 WebSocket 对象的方式:
websocket = new WebSocket(url, "*", 'dummy', 5000);
// adding several event handler ...
websocket.connect();
浏览器连接到服务器
http://myserver:8081
url 参数持有
ws://myserver:8081/data
为什么它可以在本地使用 Flash Builder 而不是在我的服务器上工作?我错过了什么?
【问题讨论】:
-
跨域发送到哪个端口。
-
Flex 应用程序中执行的第一行是 Security.loadPolicyFile('httpaddressofmyserver:8081/crossdomain.xml');。它是从应用程序加载的。我可以在我的网络服务器的日志中看到这些。
-
嗨,我想我尝试了你在帖子中建议的一切。我试过你的 crossdomain.xml。同样的错误。当我从服务器交付应用程序时,为什么会发生这种情况?即使我通过 WebSocket 连接到同一台服务器,它也可以在本地工作。
-
http:////myserver:8081/crossdomain.xml 与 ws://myserver:8081/data 不在同一个域中,因为 .com 在哪里
标签: javascript actionscript-3 apache-flex flash-builder websocket