سؤال

أقوم حاليًا بتطوير تطبيق Ruby on Rails مع Rails 3.0 على Ubuntu 10.4. أنوي استخدام Adobe Flex للواجهة الأمامية. لهذا السبب قمت بتثبيت Flash Builder 4 على Windows XP باستخدام Virtual Box. يتم سد اتصال الإنترنت لهذا الجهاز الظاهري.

يتكون تطبيق Flex حاليًا فقط من طلب HTTP بسيط يسترجع ملف XML من تطبيق Rails الذي يعمل على Ubuntu LocalHost: 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>

في مدير شبكة فلاش باني ، يتم عرض طلب 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()

لقد غوغل هذا ، وبالتالي جربت هذه الأشياء:
- تمت إضافة استخدام network = 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 يحاول تلقي شيء من المضيف المحلي: 27813 ... لكنني عالق في هذه المرحلة. المساعدة ستكون موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

الرمية في الظلام. اذهب هنا وأضف هذا الموقع (LocalHost: 27813) كموقع موثوق به:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

المزيد من التخمينات:

  • قم بتشغيل مشروعك باستخدام Flash Builder Network Monitor.
  • تصدير إصدار إصدار وتشغيله
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top