AS3 и междоменный - PullRequest
       1

AS3 и междоменный

0 голосов
/ 15 ноября 2011

Я думаю, что я немного запутался. Я загружаю SWF, расположенный в domainB.com/secondsubfolder, из SWF, расположенного в domainA.com/firstsubfolder.

Я всегда помещаю crossdomain.xml возле SWF "загрузчик" в domainA.com/firstsubfolder.

Кажется, он не работает, за исключением случаев, когда я помещаю crossdomain.xml в корень загруженного контента, domainB.com/crossdomain.xml.

Я всегда делал это неправильно или это из-за каких-то настроек сервера? Использование другого домена для загруженного контента, например, domainB_beta.com/secondsubfolder на другом сервере просто работает как обычно.

Куда мне обратиться, чтобы изменить эти настройки? Зависит ли это от настроек сервера, или я что-то не так делаю?

Это код скрипта загрузчика:

import flash.display.Loader;
import flash.net.URLRequest;
import flash.system.Security;

Security.allowDomain("domainB.com"); 
var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;

var loaderMain:Loader = new Loader();
loaderMain.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loaderMain.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
loaderMain.load(new URLRequest('domainB/secondsubfolder/file.swf'),context);
addChild(loaderMain);

function errorHandler(event:ErrorEvent):void {
trace("errorHandler says: " + event);

}

1 Ответ

2 голосов
/ 15 ноября 2011

Исходя из этого примера, ваш файл междомена должен быть в http://domainb.com/crossdomain.xml. Похоже, что у вас там есть, но это старый стиль. Возможно, попробуйте обновить его до чего-то вроде:

<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only"/>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Кроме того, у вас установлен Security.allowDomain, но попробуйте добавить также Security.allowInsecureDomain. Вы не используете HTTPS в своем соединении.

Наконец, попробуйте запустить fiddler или charles для наблюдения за сетевым трафиком. Найдите запрос crossdomain.xml и посмотрите, какой ответ вы получаете. Это может пролить дополнительный свет на предмет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...