私は現在、Ubuntu 10.4のRails 3.0でRuby on Railsアプリケーションを開発中です。 フロントエンドにAdobe Flexを使用する予定です。このため、私はVirtual Boxを使ってWindows XPにFlash Builder 4をインストールしました。この仮想マシンのインターネット接続はブリッジされています。FlexのRuby-on-Railsのhttp xmlリクエストのエラー
のFlexアプリケーションは現在、XMLのUbuntuのローカルホスト上で実行されているRailsのアプリケーションからファイルを取得する簡単なHTTPリクエストで構成されています:HTTPリクエストは次のように表示されているFlash Builderのネットワークマネージャで
<?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>
:3000をワーキング。応答はそこにあり、正しい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()
は、私はこれをGoogleで検索し、従って、これらの事を試してみました:
- このプロジェクトのためのFlash Builderのコンパイラオプションに偽=使用、ネットワーク追加
は - Railsのプロジェクトのパブリックフォルダへのcrossdomain.xmlファイルを追加しました:
<?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
*ラッキーショット* :) – Heikki