PDA

Просмотр полной версии : Не могу подгрузить XML с узла


mre
17.05.2008, 13:28
Основная swf лежит в http://domain.ru/data/index.html
Пытаюсь загрузить xml с узла http://subdomain.domain.ru/xml/news.php
Когда swf собирается во Flash IDE все отлично подгружается, а вот при загрузке на сервере вываливается ошибка:
Security sandbox violation: http://domain.ru/data/index.swf cannot load data from http://subdomain.domain.ru/xml/news.php
При экспорте ставлю Access network only. И в конструкторе Document сlass прописываю flash.system.Security.allowDomain("http://subdomain.domain.ru");

Подскажите в чем может быть проблема.

P.S.: Домены здесь выдуманные.

etc
17.05.2008, 14:04
Т.е. вы разрешаете домену subdomain обращаться к флешке с domain? Похвально, но субдомену как-то положить на вашу флешку.
Читайте про политику безопасности во Flash в хелпе, а именно про crossdomain.xml.
Использование вами allowDomain абсурдно по сути, если бы таким образом можно было разрешать загружать данные с удаленных хостов, то никакого смысла в Security не было бы.

mre
17.05.2008, 14:45
Создал файл crossdomain.xml, положил его в http://domain.ru/data/crossdomain.xml
Содержимое файла:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="subdomain.domain.ru" />
</cross-domain-policy>
В конструкторе Document class добавил:
Security.loadPolicyFile("crossdomain.xml");

Ситуация не изменилась.

etc
17.05.2008, 14:50
Естесственно, потому что надо было сделать все ровным счетом наоборот, crossdomain на subdomain в корень и там прописать доступ для *.domain.ru и domain.ru.
И loadPolicyFile не нужен.

mre
17.05.2008, 15:03
Все получилось, спасибо!
А если я хочу разрешить доступ только к определенной директории? Попробовал положить crossdomain.xml в http://subdomain.domain.ru/xml, но ничего не получилось.
Видимо нужно использовать loadPolicyFile.

etc
17.05.2008, 23:18
Для определенной не получится.