Flash沙箱无法让我从服务器获取JSON数据 - AS3

时间:2015-09-07 17:55:37

标签: json actionscript-3 flash sandbox

我正在设置本地SWF文件,必须在某些动态文本中显示从远程Web服务器检索到的 JSON 数据领域。 代码:

Security.allowDomain("api.yourserver.com");

var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://api.yourserver.com/yourendpoint");
request.method = URLRequestMethod.GET;
request.contentType = "application/json";

loader.load(request);
loader.addEventListener(Event.COMPLETE, decodeJSON);

function decodeJSON(event:Event):void{
var loader:URLLoader = URLLoader(event.target);
var Info:Object = JSON.parse(loader.data);
cont.textfield1.text = Info.text.field1;
cont.textfield2.text = Info.text.field2;
cont.textfield3.text = Info.text.field3;
}

控制>测试 - 它的工作原理。独立运行时不会。我收到了2028错误(沙箱违规)。

我尝试了什么:

  • LoaderContext方法解释here on StackOverflow但是我得到一个2124错误(加载文件是一个未知类型 - 看起来像Loader方法只能用于像SWF这样的东西或像JPG这样的媒体等);
  • 按照always here on StackOverflow所述设置本地播放,但没有帮助;
  • 在全局Flash Player信任目录中设置和例外,如here所述,但再次获得了2028;

任何能够克服这一点并愿意解释如何或至少指向正确方向的人?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为您当前发布的文件只是评估本地文件而不是网络文件,这就是您遇到安全#2028错误的原因。

为避免这种情况,您可以将已发布的swf的Local playback securityPublish Settings更改为Access network only

如果您在本地测试时仍然遇到安全错误(例如#2048错误),请查看my answer of this question以将您的本地swf文件添加到受信任位置...

希望可以提供帮助。