Есть ли способ привязать мой гибкий конструктор к моему приложению django

Я пытаюсь создать простое гибкое приложение, которое использует django в качестве серверной части. Есть вопрос:

Обычно, когда я запускаю свое приложение, Flex Builder создает файл в каталоге на моем локальном ПК, а затем открывает браузер и указывает на него. Все было хорошо, но когда я решил связать сервер django с гибкими приложениями через поставщиков данных xml, я начал получать ошибки безопасности. (Связано с отсутствием crossdomain.xml). Когда я создал файл и поместил его на сервер:

   <?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
    <allow-access-from domain="http://127.0.0.1:8000"/>
    <allow-access-from domain="127.0.0.1"/>
</cross-domain-policy>

Затем снова попробовал приложение, я получил ошибку в консоли моей ошибки FB: запрос ресурса на http://127.0.0.1:8000/go/active/ отправителем запроса из файла: ///Users/oleg/Documents/FB3/usersList/bin-debug/usersList.swf отклонен из-за отсутствия разрешений для файла политики.

Не знаю, как исправить ошибку. Но также вопрос, есть ли способ настроить FB3 для непосредственного размещения моих SWF-файлов на сервере, чтобы мне не понадобился кросс-домен?

Спасибо Олег


person Community    schedule 19.07.2009    source источник


Ответы (3)


Мы много с этим боролись. Средства безопасности Flex не казались мне такими уж хорошими, но, возможно, у нас просто были другие подходы, чем у разработчиков Adobe. Решение, которое сработало для нас, заключалось в том, чтобы обслуживать и SWF, и динамические данные с одного хоста и порта.

В наших полях разработки мы говорим Apache обслуживать SWF из каталога в рабочей области, а динамические данные - из локальной копии приложения. Когда мы запускаем производство, SWF и приложение одновременно отправляются на один и тот же виртуальный хост.

Если вам это неудобно, можно использовать ProxyPass директиву Apache. используется для создания прикрытия Apache для других серверов. Я не использовал это в продакшене, но это очень удобно для разработчиков.

person William Pietri    schedule 20.07.2009
comment
Это сплошная боль! У меня есть одно приложение, обслуживающее мои SOAP WebServices, и я хочу иметь возможность подключаться к нему из моего разрабатываемого приложения Flex ... хостинг на том же порту будет лаваш: я думаю, мне придется сделать то, что вы предлагаете . - person jkp; 28.09.2009

Я не знаю, как заставить FlexBuilder автоматически развертывать измененный SWF; вы, безусловно, можете изучить подход к автоматизации (например, Maven и Flex-Mojos), чтобы это произошло.

Тем не менее, для избавления от этой ошибки обычно достаточно просто добавить файл политики на сервер.

person Geoffrey Wiseman    schedule 19.07.2009

Вторая ошибка вызвана тем, что вы пытаетесь получить ресурсы http из "файлового" местоположения. Я рекомендую вам изменить свой проект Flex Builder так, чтобы он выводил его в место на веб-сайте Django, а не в каталог flex-bin. Этот параметр можно изменить в диалоговом окне свойств проекта. Тогда вы должны иметь возможность использовать один и тот же протокол и домен для внешнего и внутреннего интерфейса.

person Jacob    schedule 19.07.2009