【问题标题】:Error #2048: Security sandbox violation: cannot load data from <local file>错误 #2048:违反安全沙箱:无法从 <本地文件> 加载数据
【发布时间】:2016-03-01 03:19:25
【问题描述】:

我在我的 AS3 应用程序中发现了一个问题。在我的本地机器上一切都很好,但是当我将它发送给我的朋友时,他无法在他的计算机上打开它,因为他得到了

错误 #2044:未处理的安全错误:。文本=错误 #2048:安全性 沙盒违规:无法从 data.json 加载数据

当我将我的应用程序上传到 web 时,也会发生同样的错误。我无法播放它并得到同样的错误。

这是我的代码:

var myTextLoader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("data.json");
myTextLoader.addEventListener(Event.COMPLETE, onLoaded);
myTextLoader.load(request);

...

private function onLoaded(e:Event):void 
{
            var loader:URLLoader = URLLoader(e.target);
            var myObject:Object = JSON.parse(loader.data);
}

我该如何解决?如果可以的话,请帮助我:)

【问题讨论】:

标签: actionscript-3 flash


【解决方案1】:

本地 SWF 无法访问本地文件系统。

在线 SWF 可以根据同源策略访问资源,如果设置了 crossdomain.xml,则可以进一步访问。

您无法为本地解决此问题,但在线 SWF 应该能够做到这一点。

试试:

var request:URLRequest = new URLRequest("./data.json");

这意味着如果 SWF 托管在:

https://www.example.com/foo/flash.swf

可以访问:

https://www.example.com/foo/data.json

【讨论】:

  • 我试过了,但我又看到了这个错误。大概,这个问题的根本原因不是路径..?
  • 确保在对象嵌入中设置了
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 2012-08-12
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多