代码之家  ›  专栏  ›  技术社区  ›  jsight TaherT

对于使用Flex构建的Adobe AIR应用程序,是否可以绕过cross-domain.xml要求?

  •  0
  • jsight TaherT  · 技术社区  · 14 年前

    Adobe AIR应用程序是否可以连接到不公开cross-domain.xml文件的remove webservice?如果是,那么如何在Air中配置安全沙箱以允许此操作?

    我尝试了套接字连接,但收到以下错误:

    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
    ]
    
    1 回复  |  直到 14 年前
        1
  •  4
  •   James Ward    14 年前

    AIR应用程序没有与浏览器中的Flash Player相同的域策略。因此,您通常不需要AIR应用程序的跨域策略文件。但是有时空中会抛出安全错误事件,可以忽略。下面是一个例子:

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