首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flex URLStream安全沙箱违规

Flex URLStream安全沙箱违规
EN

Stack Overflow用户
提问于 2013-05-31 20:03:48
回答 1查看 1.1K关注 0票数 0

我想从MJPG获取URLStream,但在发布版本中收到错误#2048:安全沙盒冲突错误。

我想要做的是:

代码语言:javascript
运行
复制
Security.allowDomain("*");
Security.allowInsecureDomain("*");

var stream:URLStream = new URLStream();
//receiving this error event in onStreamSecurityError handler:
//Error #2048: Security sandbox violation: {swf} cannot load data from {url}
stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onStreamSecurityError);
//load method have no loader context option
stream.load(new URLRequest("http://anydomain.com/mjpg/video.mjpg"));

设置crossdomain.xml不是解决方案,因为应用程序应该能够从任何远程服务器加载流。

我记得在使用flash.display.Loader类时,我设置了LoaderContext和应用程序域。之后,flex应用程序可以从任何域加载资源。但我不知道该怎么处理URLStream。

对于错误#2048,您有什么解决方案或解决方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 20:50:31

这不可能。您不能远程授予对另一个域的访问权限,因为它不是您可以授予的。allowDomain()函数不会这样做,相反,它会这样做:

允许标识的域中的SWF文件访问包含allowDomain()调用的SWF文件中的对象和变量。

如果你的SWF在域a.com上,并且你在其中添加了行Security.allowDomain("b.com"),那么就向你的SWF授予对域b.com上的SWF的访问权限。它不会授予您对域b.com的访问权限。

您可以在the documentation of allowDomain()中找到有关这方面的更多详细信息

AJAX也不会让你这么做,或者更好地说,浏览器也不会让你这么做。他们都在遵守同样的规则。

为了克服这个问题,您必须通过与SWF位于同一域中的服务器端脚本来代理请求。它可以是带有curl的PHP,也可以是您觉得更容易的任何语言。This video解释了如何以及为什么。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16856841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档