2010-04-23 47 views
0

Adob​​e AIR應用程序可能連接到未公開cross-domain.xml文件的移除web服務嗎?如果是這樣,你如何配置Air內的安全沙箱來允許這個?是否可以繞過使用Flex構建的Adobe AIR應用程序的cross-domain.xml要求?

我試圖套接字連接並收到以下錯誤:

securityErrorHandler: 
[SecurityErrorEvent 
    type="securityError" 
    bubbles=false 
    cancelable=false 
    eventPhase=2 
    text="Error #2048: Security sandbox violation: app:/MyApp.swf cannot 
      load data from gmail.com:5222." errorID=0 
] 

回答

4

AIR應用程序不具有相同的域策略如Flash播放器在瀏覽器中。所以你通常不需要使用AIR應用程序的跨域策略文件。但有時AIR會拋出可以忽略的SecurityErrorEvent。這裏是一個例子:

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"> 

    <mx:applicationComplete> 
    <![CDATA[ 
     var s:Socket = new Socket(); 
     s.addEventListener(ProgressEvent.SOCKET_DATA, function(event:ProgressEvent):void { 
     t.text += event.target.readUTFBytes(event.target.bytesAvailable); 
     }); 
     s.addEventListener(Event.CONNECT, function(event:Event):void { 
     t.text += "Event.CONNECT\n\n"; 
     s.writeUTF("GET/HTTP/1.0\n\n"); 
     }); 
     s.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(event:SecurityErrorEvent):void { 
     trace('security sandbox error ignored'); 
     }); 
     s.connect("www.jamesward.com", 80); 
    ]]> 
    </mx:applicationComplete> 

    <mx:TextArea id="t" width="100%" height="100%"/> 

</mx:WindowedApplication> 
+0

我原以爲這是真的,但是,我在嘗試連接時收到一個錯誤。 – jsight 2010-04-23 20:43:42

+0

我已經用更多的細節更新了答案。如果這不適合你,那麼你能發佈一個顯示問題的測試用例嗎? – 2010-04-23 22:41:48

相關問題