Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с loadPolicyFile (http://www.flasher.ru/forum/showthread.php?t=145779)

usacha 19.10.2010 16:48

Проблемы с loadPolicyFile
 
Здраствуйте!

Недавно столкнулсяя с одной проблемой loadPolicyFile - не знаю как побороть.
В документации loadPolicyFile пишут что

With Security.loadPolicyFile(), Flash Player or AIR can load policy files from arbitrary locations, as shown in the following example:

Код AS3:

Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");


This causes Flash Player or AIR to retrieve a policy file from the specified URL. Any permissions granted by the policy file at that location will apply to all content at the same level or lower in the virtual directory hierarchy of the server.


Т.е. можно загружать кросдомен из поддоменов, а не только из корневого домена, и даже папок.
Попробовал я это сделать...

Код AS3:

Security.loadPolicyFile( "http://sub.domain.com/crossdomain.xml" );

кросдомена в указаном месте не было, вернулась ошибка 2048 - Security sandbox violation. НУ и черт с ней. Удалили код пересобрал/перезалил.

И опять та же ошибка (!). В файрбаге вижу что флеш пытаеться тянуть тот кросдомен.
ВТФ?

Пытался руками заставить грузить из корня
Код AS3:

Security.loadPolicyFile( "http://domain.com/crossdomain.xml" );

Не помголо. всеравно пытаеться грузить из поддомена.

Как забороть эту гадость? Плеер переставлял. Пересобирал и проверял на других машинах - та же ерунда.

Obi 20.10.2010 10:35

Флешка закешировалась? Не собралась? Нарисуйте красный прямоугольник в уголке програмно и проверьте, та ли у вас флешка )
У меня, бывало, флекс не хотел собирать swc библиотеку, т.е. как бы собрал, но бинарник старый оставался. Приходилось вручную старй бинарник удалять, чтобы флекс новый скомпилил.

dimarik 20.10.2010 11:18

Цитата:

Сообщение от usacha (Сообщение 943781)
Т.е. можно загружать кросдомен из поддоменов, а не только из корневого домена, и даже папок.

Если полиси файл лежит не в корне домена (поддомена), то нужно использовать Security.loadPolicyFile. Естественно, грузить следует из того же домена (поддомена), куда флешка обращается за данными или контентом. Полиси файл действует только в пределах точного совпадения доменов. Т.е. если флешка хочет загрузить данные из http://sub.domain.com/, то именно в этом домене должен располагаться crossdomain.xml. Но никак не в http://domain.com/. Если он находится не в корне домена, то необходимо использовать Security.loadPolicyFile
Например, для файла политик, находящегося в каталоге policy домена sub.domain.com:
Код AS3:

Security.loadPolicyFile( "http://sub.domain.com/policy/crossdomain.xml" );

Но в этом случае вы получите доступ на загрузку только из каталога http://sub.domain.com/policy/ и вложенных в него.
Цитата:

Any permissions granted by the policy file at that location will apply to all content at the same level or lower in the virtual directory hierarchy of the server.
Нет обязательной необходимости вызывать загрузку из корня домена, т.к. при отсутствии указаний, флеш-плеер автоматически загрузит файл политик именно оттуда. То, что файл политик скачивается по прямому указанию из корня домена называют предварительной загрузкой политик. Это сделано для того, чтобы ко времени выполнения основного кода политики были доступны. Тем самым избегаем лага на загрузке политик.


Часовой пояс GMT +4, время: 12:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.