У меня есть небольшое клиент-тестовое приложение, где у меня есть приложение Flex, которое делает HTTP-запрос серверного приложения. Серверное приложение - это скрипт, работающий на моем локальном компьютере и прослушивающий порт 8001. Клиент - это SWF-файл, который я запускаю локально и использует mx.rpc.http.HTTPService
для выполнения запроса страницы.
HTTPService настраивается согласно нижеуказанному:
_HttpService = new HTTPService();
_HttpService.url = "http://localhost:8001";
_HttpService.contentType = "text/xml";
Когда я выполняю запрос базовой страницы, мое серверное приложение сначала получает запрос "GET /crossdomain.xml HTTP/1.1"
, который не выполняется, поскольку у меня нет файла crossdomain.xml. Причина, по которой у меня его нет, заключается в том, что все это происходит на моей локальной машине (на данный момент), и мне это не нужно (я не думаю).
У меня определенно был этот код, работающий раньше без crossdomain.xml, когда я использовал Flex 3.x. Я думал, что у меня это работает и с Flex 4. Сейчас я использую Flex 4.5. Здесь есть проблема, возможно, из-за изменений в политике безопасности?
Когда все это происходит на localhost, почему проигрыватель Flash Player запрашивает файл crossdomain.xml?
Если это помогает, конкретная ошибка, которую возвращает мой AsyncResponder:
[FaultEvent fault=[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"] messageId="F43DCBFF-E99A-99CC-57D8-535C13C7CD48" type="fault" bubbles=false cancelable=true eventPhase=2]