2010-04-23 2 views
0

Est-il possible qu'une application Adobe AIR se connecte à un service Web de suppression qui n'expose pas un fichier cross-domain.xml? Si oui, comment configurez-vous le sandbox de sécurité dans Air pour permettre cela?Est-il possible de contourner l'exigence cross-domain.xml pour une application Adobe AIR construite avec Flex?

J'ai essayé une connexion socket et a reçu l'erreur suivante:

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 
] 

Répondre

4

applications AIR ne disposent pas d'une même politique de domaine comme Flash Player dans le navigateur. Vous n'avez donc généralement pas besoin de fichiers de règles inter-domaines avec les applications AIR. Cependant, AIR lancera parfois SecurityErrorEvent qui peut être ignoré. Voici un exemple:

<?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

J'aurais pensé que c'était vrai aussi, cependant, je reçois une erreur en essayant de me connecter. – jsight

+0

J'ai mis à jour la réponse avec plus de détails. Si cela ne fonctionne pas pour vous, pouvez-vous poster un test qui montre le problème? –

Questions connexes