Flex 4 FileReference Проблемы с Firefox - PullRequest
1 голос
/ 11 мая 2011

Я пытаюсь выполнить загрузку файла, используя FileReference из приложения Flex, работающего в Firefox 4. Однако, когда я пытаюсь вызвать метод upload (), Filereference выдает IOError со следующим

Error #2038: File I/O Error. URL: http://localhost:8080/admin/upload

Если я явно не добавляю прослушиватель для IOErrorEvent, тогда я получаю всплывающее окно Flash player с сообщением

SecurityError: Error #2000: No active security context.

Запрос даже не попал на мой сервер (я могу проверить, разместив точки останова в коде Java и наблюдая за HTTP-запросами, выполняемыми с использованием HTTPFox), поэтому мне кажется, что это проблема на стороне клиента (верно? ). Я провел некоторые поиски проблемы в Google, и были предложены следующие варианты: завершение вызова upload () в timeout / callLater и попытка присоединить sessionId к запросу (поскольку Firefox создает новый поток для загрузки и не прикрепить правильные куки). Ни один из этих подходов не сработал для меня.

У меня нет проблемы с Internet Explorer, только Firefox.

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

РЕДАКТИРОВАТЬ: Следует отметить, что SWF-файл и запрашиваемый URL-адрес находятся на одном сервере (localhost: 8080).

Ответы [ 2 ]

0 голосов
/ 21 февраля 2013

Из документов для FileReference :

Для содержимого, запущенного в Flash Player, или для содержимого, запущенного в Adobe AIR за пределами изолированной программной среды безопасности приложения, операции загрузки и выгрузки могут получить доступфайлы только в его собственном домене и в любых доменах, указанных в файле политики URL.Поместите файл политики на файловый сервер, если содержимое, инициирующее загрузку или загрузку, не принадлежит тому же домену, что и файловый сервер.

Кроме того, выполняется ли это как выпуск или в отладчике?Иногда поведение для доступа к серверу совсем другое.

0 голосов
/ 11 мая 2011

Довольно нормальная проблема с песочницей безопасности (не распространенная в Firefox, но в Flash Player).

Вам просто нужен файл crossdomain в корне вашего веб-сервера.

...