apache-flex - Flex 与 crossdomain.xml 和 FileReference.upload 相关的问题

标签 apache-flex

问候

我有一个 Flex 应用程序,它向位于不同域的 Web 应用程序发出各种请求。因此,我制作了一个自定义 crossdomain.xml 以允许从我的 Flex 应用程序进行访问。 该文件的内容是

> <!DOCTYPE cross-domain-policy SYSTEM
> "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
> <cross-domain-policy>
>     <site-control permitted-cross-domain-policies="all"/>
>     <allow-access-from domain="*" secure="false" to-ports="*"/>
> </cross-domain-policy>

此 crossdomain.xml 位于我的 web 应用程序的子文件夹中:http://host:port/services/crossdomain.xml 这些服务(有些是 http 服务,有些是 Web 服务)都位于 services 子文件夹内。

我正在使用 Security.loadPolicyFile 加载 crossdomain.xml ,一切正常。直到我尝试使用 FileReference 对象上传文件。即使我的 HTTP 表单位于 services 子文件夹下,并且我正确加载了 crossdomain.xml 文件(我可以执行 http 请求和 Web 服务请求),每次我尝试上传文件时,我都会遇到臭名昭著的安全沙箱违规。

我错过了什么吗?是否有任何允许文件上传的特殊说明?根据 Adob​​e 文档 ( http://livedocs.adobe.com/flex/3/html/help.html?content=05B_Security_10.html ),一切都配置良好。有什么想法吗?

最佳答案

Flash Player 中的文件上传使用 Socket API,而不是浏览器网络 API。因此,要以这种方式进行操作,您需要有一个 socket policy file .

更简单的替代方法是通过 RemoteObject 进行上传。为此,您需要使用 Flash Player 10 中的新 FileReference API,以便您可以读取客户端文件的字节,然后在 RemoteObject 调用中将它们发送到服务器。

关于apache-flex - Flex 与 crossdomain.xml 和 FileReference.upload 相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679952/

相关文章:

apache-flex - 测试as3中xml属性的存在

actionscript-3 - 为什么在 Flex 4 中这个笔划元素没有出现在这个梯形周围?

apache-flex - 如何让Flex项目在运行时加载插件?

apache-flex - Flex,如何获得日期的一年中的一周?

apache-flex - flex 4 标签栏 - 禁用标签

apache-flex - 在 AIR 中使用 bytearray 加载 Swf

javascript - 如何弃用 flash/flex 公开的 javascript 函数?

apache-flex - flex 4.6 pom 文件依赖没有解决

apache-flex - 如何以慢动作播放 flex 中的视频?

apache-flex - 我应该在 Flex 应用程序中的哪里存储有关服务器的数据?