В настоящее время я разрабатываю приложение Ruby on Rails с Rails 3.0 на Ubuntu 10.4. Я намерен использовать Adobe Flex для интерфейса. По этой причине я установил Flash Builder 4 в Windows XP с помощью Virtual Box. Подключение к Интернету этой виртуальной машины моста.Flex Ruby-on-Rails http xml request error
Flex приложений в настоящее время состоит только из простого HTTP запроса, который извлекает файл XML с Rails приложение, работающее на Ubuntu локального хоста: 3000:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="plansService.send()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<s:HTTPService id="plansService"
url="http://192.168.1.102:3000/plans/list" />
</fx:Declarations>
<fx:Script>
<![CDATA[
private function printPlans():void {
for each (var xm:XML in plansService.lastResult.plans.plan) {
trace("my name is "+ xm.child("name"));
}
}
]]>
</fx:Script>
</s:Application>
В Flash Builder Network Manager HTTP-запрос отображается как за работой. Ответ есть и содержит правильные XML-данные. Но при загрузке Flex приложений в браузере, я получаю эту ошибку:
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: file://C:\Documents and Settings\susi\Adobe Flash Builder 4\naturalstudy\bin-debug\naturalstudy.swf cannot load data from localhost:27813.
at mx.netmon::NetworkMonitorImpl()[/ndepot/fb_401/ide_builder/ActionscriptProjects/src/mx/netmon/NetworkMonitorImpl.as:81]
at mx.netmon::NetworkMonitorImpl$/init()[/ndepot/fb_401/ide_builder/ActionscriptProjects/src/mx/netmon/NetworkMonitorImpl.as:49]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:2620]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:2539]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\preloaders\Preloader.as:515]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
Я гугл это и, таким образом, пытались эти вещи:
- добавляемая потребительской сеть = False для параметров компилятора Flash Builder для этого проекта
- добавил crossdomain.xml файл в общую папку Rails проекта:
<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Но она по-прежнему не работает, а ошибка та же. Я думаю, проблема в том, что приложение Flex пытается получить что-то от localhost: 27813 ... но я застрял на этом этапе. Помощь была бы очень признательна!
спасибо! Добавление localhost: 27813, так как надежное местоположение решило проблему! : D – daniela
* Lucky shot * :) – Heikki