Гибкая проблема с crossdomain.xml и FileReference.upload - PullRequest
2 голосов
/ 25 марта 2009

Привет

У меня есть приложение Flex, которое выполняет различные запросы к веб-приложению, расположенному в другом домене. Таким образом, я создал собственный файл crossdomain.xml, чтобы разрешить доступ из моего приложения Flex. Содержимое этого файла

> <!DOCTYPE cross-domain-policy SYSTEM
> "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
> <cross-domain-policy>
>     <site-control permitted-cross-domain-policies="all"/>
>     <allow-access-from domain="*" secure="false" to-ports="*"/>
> </cross-domain-policy>

Этот файл crossdomain.xml находится в подпапке моего веб-приложения: http://host:port/services/crossdomain.xml Службы (некоторые являются http-службами, другие - веб-службами) расположены внутри подпапки служб.

Я загружаю файл crossdomain.xml, используя Security.loadPolicyFile, и все работает нормально. Пока я не попытался загрузить файл, используя объект FileReference. Даже когда моя HTTP-форма находится в подпапке services и что я правильно загружаю файл crossdomain.xml (я могу выполнять как http-запросы, так и запросы веб-сервисов) каждый раз, когда я пытаюсь загрузить файл, я получаю печально известное нарушение безопасности.

Я что-то упустил? Существуют ли специальные инструкции для загрузки файлов? Согласно документации Adobe (http://livedocs.adobe.com/flex/3/html/help.html?content=05B_Security_10.html) все хорошо настроено. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 27 марта 2009

При загрузке файлов во Flash Player используется API-интерфейс Socket вместо сетевого API-интерфейса браузера. Таким образом, чтобы сделать все так, вам понадобится файл политики сокетов .

Более простой альтернативой является загрузка через RemoteObject. Для этого вам потребуется использовать новые API-интерфейсы FileReference во Flash Player 10, чтобы вы могли прочитать байты файла на стороне клиента и затем отправить их на сервер во время вызова RemoteObject.

0 голосов
/ 07 марта 2013

У меня тоже возникла такая же проблема с crossdomain.xml 404. Не найдено.

Мы интегрировали flex с salesforce.com в наш проект и обнаружили ошибку crossdomain.xml.

При аутентификации при входе в систему мы использовали имя пользователя и пароль для локального тестирования, и по ошибке мы указали URL-адрес сервера для подключения к salesforce.com.

Он работал нормально во всех браузерах, кроме Chrome. Затем сначала внесены изменения, чтобы проверить URL-адрес сервера, и включил тестовое имя пользователя и пароль в функцию сбоя, которая также работала с Chrome. Не добавлено ни одного файла crossdomain.xml в корень.

Возможно, исходные данные теста браузера Chrome не были переопределены URL-адресом сервера по ошибке.

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