1

我正在尝试创建简单的 flex 应用程序,它使用 django 作为后端部分。有一个问题:

通常,当我运行我的应用程序时,Flex Builder 会在本地 PC 上的目录中创建一个文件,然后打开浏览器并指向它。一切都很好,但是当我决定通过 xml 数据提供程序将 django 服务器链接到 flex 应用程序时,我开始遇到安全错误。(与缺少 crossdomain.xml 有关)。当我创建文件并将其放在服务器上时:

   <?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
    <allow-access-from domain="http://127.0.0.1:8000"/>
    <allow-access-from domain="127.0.0.1"/>
</cross-domain-policy>

然后再次尝试该应用程序,我在我的 FB 控制台中收到错误错误:请求者在http://127.0.0.1:8000/go/active/处请求资源,来自 file:///Users/oleg/Documents/FB3/由于缺少策略文件权限,usersList/bin-debug/usersList.swf 被拒绝。

我不知道如何修复错误。但还有一个问题是有没有办法配置 FB3 将我的 swf 文件直接放到服务器上,所以我不需要任何跨域?

谢谢奥列格

4

3 回答 3

1

我们为此苦苦挣扎。Flex 安全性的东西并没有给我留下深刻印象,但也许我们只是考虑了与 Adob​​e 的开发人员不同的方法。对我们有用的解决方案是同时提供来自同一主机和端口的 SWF 和动态数据。

在我们的开发框中,我们告诉 Apache 从工作区中的目录提供 SWF,并从应用程序的本地副本提供动态数据。当我们推送到生产环境时,SWF 和应用程序会同时推送到同一个虚拟主机。

如果这对您不方便,可以使用 ApacheProxyPass指令使 Apache 成为其他服务器的前端。我没有在生产中使用它,但它对于开发人员设置非常方便。

于 2009-07-20T08:20:12.267 回答
0

我不知道如何让 FlexBuilder 自动部署您更改的 SWF;您当然可以研究一种自动化方法(如 Maven 和 Flex-Mojos)来实现这一点。

也就是说,消除该错误通常只需向服务器添加策略文件即可。

于 2009-07-19T19:14:01.293 回答
0

第二个错误是因为您试图从“文件”位置获取 http 资源。我的建议是更改 Flex Builder 项目,使其输出到 Django 网站中的某个位置,而不是 flex-bin 目录。可以在项目的属性对话框中更改此设置。然后,您应该能够让您的前端和后端共享相同的协议和域。

于 2009-07-19T19:35:54.980 回答