Flex: приложение пытается получить доступ http://localhost/crossdomain.xml на сервере, когда не указан внешний домен

#apache-flex

#apache-flex

Вопрос:

Недавно я загрузил свое приложение flex на сервер, оно отлично работает в моей системе (localhost), но на рабочем сервере оно пытается получить доступhttp://localhost/crossdomain.xml который недоступен и в конечном итоге показывает «загрузку» вечно.

Ответ №1:

Проверьте свой код и посмотрите, ссылаетесь ли вы где-нибудь на URL localhost.Например, вы могли бы использовать URL localhost для вызова httpservice.

Комментарии:

1. В дополнение к этому, старайтесь не использовать «абсолютные» URL-пути, всегда используйте относительные, когда это возможно, как в <HTTPService url="someDir/someFile.txt" /> . Таким образом, не имеет значения, на каком сервере вы выполняете развертывание, оно всегда будет использовать текущее местоположение html-файла, который обслуживает ваше приложение Flex, в качестве основы.

Ответ №2:

У меня есть клиент flex, который взаимодействует с сервером на базе zend-framework. Клиент и сервер размещены на разных компьютерах (также на одном компьютере разработчика с разным URL). Что мне нужно было сделать, чтобы это заработало, заключается в следующем:

Мне пришлось отредактировать файл srcservices_Super_MyHttpService.as в исходном коде моего клиента flex и обновить http URL с http://localhost/ на http://SERVER_IP/ для вызываемой переменной _serviceControl . Затем скомпилируйте гибкий клиент.

Я также поместил crossdomain.xml файл в корневой каталог сервера с содержимым, подобным:

 <?xml verspion="1.0">
<cross-domain-policy>
    <allow-access-from domain="CLIENT_IP"/>
</cross-domain-policy>
  

Примечание: замените SERVER_IP , CLIENT_IP на правильный IP-адрес, на котором размещены сервер и клиенты flex соответственно.