gpt4 book ai didi

actionscript-3 - 是否有可靠的方法来确保已为所有 Facebook 图像服务器检索跨域策略文件?

转载 作者:行者123 更新时间:2023-12-01 09:38:39 25 4
gpt4 key购买 nike

我最近开始整合 Facebook Connect AS3 应用并通过 Graph API 检索对象和图像。

在本地以外的任何地方运行,我收到以下形式的安全错误:
SecurityError: 错误 #2122: 违反安全沙箱:Loader.content: xxxx 无法访问 http://photos-a.ak.fbcdn.net/xxxx.jpg 需要一个策略文件,但在加载此媒体时未设置 checkPolicyFile 标志。

如果我添加一行表格:
Security.loadPolicyFile("ht_tp://photos-a.ak.fbcdn.net/crossdomain.xml");
- 那我对那台服务器没问题,但似乎有任意数量的域具有照片-[字母]格式。我已经为字母表中的每一个都添加了一个 - 它可以成功地检索跨域文件 - 但它似乎不是一个好的解决方案,并且不适应 Facebook 可能 将实现的任何新托管设置 future 。

我考虑过的一件事是基于每个图像检索跨域策略文件,在发出图像请求之前从图像 URL 捕获域。不幸的是,至少通过 Graph 解决方案(我还没有仔细研究其他解决方案),他们的服务器在发出请求后解析图像 url,从更通用的东西,例如:
ht_tps://graph.facebook.com/[objectId]/picture?type=small&access_token=[accessToken]

是否有人找到了一种更可靠的方法来确保可以在不违反安全沙箱的情况下检索图像?或者 Facebook 是否维护了一个开发者需要关注的明确列表?

谢谢!

最佳答案

在您的应用程序的初始加载 facebook 跨域,如下所示;

Security.allowDomain("*");
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://graph.facebook.com/crossdomain.xml");
Security.loadPolicyFile("https://graph.facebook.com/crossdomain.xml");
Security.loadPolicyFile("http://profile.ak.fbcdn.net/crossdomain.xml");
Security.loadPolicyFile("https://profile.ak.fbcdn.net/crossdomain.xml");
Security.loadPolicyFile("http://profile.cc.fbcdn.net/crossdomain.xml");
Security.loadPolicyFile("https://profile.cc.fbcdn.net/crossdomain.xml");
Security.loadPolicyFile("http://fbcdn-profile-a.akamaihd.net/crossdomain.xml");
Security.loadPolicyFile("https://fbcdn-profile-a.akamaihd.net/crossdomain.xml");
Security.loadPolicyFile("http://fbcdn-sphotos-a.akamaihd.net/crossdomain.xml");
Security.loadPolicyFile("https://fbcdn-sphotos-a.akamaihd.net/crossdomain.xml");

然后每当您想从 facebook 加载图像时,使用 Loader 的 LoaderContext 将 checkPolicy 标志设置为 true,如下所示;

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
context.checkPolicyFile = true;

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadFacebookPhoto);
loader.load(new URLRequest(YOUR_FACEBOOK_PHOTO_URL),context);

private function onLoadFacebookPhoto(e:Event):void
{
addChild(Bitmap(LoaderInfo(e.target).content));
}

关于actionscript-3 - 是否有可靠的方法来确保已为所有 Facebook 图像服务器检索跨域策略文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com