SecurityDomain 'http://domain.com/app/widget/twitter.png' попытался получить доступ к несовместимому контексту 'app:/App.swf'

Я пытаюсь загрузить удаленный образ в свое приложение AIR и получаю следующую ошибку:

*** Security Sandbox Violation ***
SecurityDomain 'http://[------].com/app/widget/twitter.png' tried to access incompatible context 'app:/App.swf'

*доменное имя отредактировано

То есть в основном речь идет о том, что удаленное изображение пытается получить доступ к приложению? Как добавить удаленный домен в качестве доверенного?

Я попробовал Security.allowDomain('www.[------].com') и получил следующую ошибку:

SecurityError: Error #3207: Application-sandbox content cannot access this feature.
at flash.system::Security$/allowDomain()

person Straseus    schedule 19.02.2012    source источник


Ответы (1)


Есть ли у вас доступ к удаленному домену, чтобы поместить файл crossdomain.xml в корень веб-сервера?

Если нет, вы можете обойти проблемы песочницы, загрузив изображение в виде массива байтов (см. URLLoader), а затем преобразовав его в изображение (см. SWFLoader.loadBytes) в памяти.

person Richard Walton    schedule 19.02.2012
comment
У меня есть доступ. Но разве это приложение не требует эквивалента crossdomain.xml? - person Straseus; 19.02.2012
comment
Есть много ловушек с песочницей безопасности flash, и я должен признать, что я не на 100% в курсе песочницы AIR (которая имеет тенденцию быть немного более строгой). TBH Я бы просто попробовал и посмотрел, работает ли это. Если это не сработает, я бы сделал, как я уже упоминал в своем ответе, и загрузил файлы в виде массивов байтов. - person Richard Walton; 19.02.2012
comment
Ричи прав. Это не приложение, которому нужен кросс-домен, это домен, из которого ваше приложение пытается что-то загрузить. Вам нужно поставить кроссдомен на верхний уровень домена. - person J_A_X; 19.02.2012