3

我有一些,比如说,奇怪的情况......它是这样的:

Flash 应用程序,在一个服务器上录制音频并将其上传到另一台服务器。因此,正如您可能猜到的那样,我遇到了安全沙箱违规异常/错误,看来我必须将 crossdomain.xml 添加到服务器的根目录。好的,做到了,但它似乎没有被下载或下载过程被中断,所以我不断收到这个错误。

有人可以指出我的错误吗?我真的不明白我做错了什么。

这是我在尝试上传音频时遇到的错误:

Error #2044: Unhandled securityError:. text=Error #2170: Security sandbox 
violation: https://ip1/bar/foo cannot send HTTP headers to https://ip2/foo/bar

这是我的 crossdomain.xml 的内容(测试版):

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" to-ports="*" />
    <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>

ps 而且,是的,crossdomain.xml 可以通过https://ip2/crossdomain.xml地址访问。

附加信息

我启用了 flash 日志,并惊讶地发现 flash 无法获取 crossdomain.xml,尽管它可以通过浏览器访问(带有一个子句,它是 https,它声明存在证书问题,或类似的东西)。

Warning: Failed to load policy file from https://192.168.22.103/crossdomain.xml  

附加信息第 2 部分

这是我在浏览器中的警告,以防我尝试手动访问 crossdomain.xml: 在此处输入图像描述

这是下载 crossdomain.xml 的请求,结果http status code = 0如下:
在此处输入图像描述

4

4 回答 4

1

最后,我发现了问题所在。当我为 Internet Explorer 开发这个应用程序时,有一些棘手的事情要让它工作。正如你在这张图片中看到的:这个有“这个网站提供的安全证书是为不同的网站地址颁发的”警告。问题是 Internet Explorer 在默认情况下总是警告用户,这就是阻止 flash 播放器下载 flash 策略文件 (crossdomain.xml) 的问题。要覆盖此行为,您只需要:

  1. 转到 Internet Explorer 设置:单击齿轮图标 -> Internet 选项
  2. 转到高级选项卡
  3. 向下滚动到设置列表的末尾并取消选中“警告证书地址不匹配”。
  4. 重要提示:杀死所有 IE 实例(如果有,请在任务管理器中检查)。
  5. 在这些步骤之后,flash 在获取 crossdomain.xml 时应该没有问题。

真的希望这将帮助其他 flex 开发人员避免此类问题。干杯!

于 2013-09-06T09:02:23.603 回答
0

我有一个类似的问题;本地主机上的 .swf 正在通过远程服务器上的 https 与 REST API 连接,该服务器有一个跨域文件,但它抛出 2170。对我来说,解决方案是在 https 上提供包含 .swf 的本地主机 .html 文件 - 那使问题消失。

于 2013-12-17T20:24:50.987 回答
0

您是否尝试过 Security.allowDomain()?

于 2013-08-30T17:34:25.633 回答
0

我有类似的问题。这有点不同,因为我涉及到套接字,但我发现 Flash 播放器使用策略文件的方式发生了一些变化。您可能会发现这很有帮助http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html 至少它帮助了我,我写了这篇文章,这就像我的案例的结论。

看看这段:

Adobe 已向互联网号码分配机构 IANA 提交申请,以保留端口 843 用于提供套接字策略文件。通过为套接字策略文件引入一个集中位置,Flash Player 使系统管理员能够通过一个覆盖主机上任何其他策略文件的主策略来定义哪些端口可用。如果 Flash Player 9,0,124,0 无法从端口 843 检索主策略文件,则它会在尝试连接的端口上请求一个套接字策略文件。但是,如果策略文件可从 TCP 端口 843 上的服务获得,则 Flash Player 认为这是该系统的权威权限集。

在我的项目中,我只是在特定端口中提供 crossdomain.xml 文件。

于 2013-09-03T21:16:32.253 回答