2012-02-16 90 views
1

我对Flex很新颖(几乎被扔进它......大声笑)。我正在尝试显示我在Web服务中创建的消息。我一直得到返回错误“安全错误访问网址目的地:DefaultHTTP”用于Flex的REST风格的Web服务

这是我的代码的副本......我知道这可能是简单的东西。我创建了数据服务配置HTTP服务,我测试了运行和测试时...只是有出了一点小麻烦一切都已成功

<?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" 
      xmlns:restsrv="services.restsrv.*" 
      minWidth="955" minHeight="600" applicationComplete="init()"> 

<fx:Declarations> 

    <mx:HTTPService id="service" url="http://servername/RestService/Service.svc/XMLService/hi" method="POST" resultFormat="e4x" /> 



    <restsrv:Restsrv id="restsrv" 
        fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" 
        showBusyCursor="true"/>   
    <s:CallResponder id="RESTfulResult"/> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 
     import mx.controls.Alert; 
     import mx.events.FlexEvent; 
     import mx.rpc.http.HTTPService; 
     import mx.rpc.events.FaultEvent; 
     import mx.rpc.events.ResultEvent; 


     protected function form_creationCompleteHandler(event:FlexEvent):void 
     { 
      RESTfulResult.token = restsrv.RESTful(); 
      /* rESTfulTextInput.text = RESTfulResult.toString(); */ 
      service.send();     
     }     
    ]]> 
</fx:Script> 


<s:Form id="form" creationComplete="form_creationCompleteHandler(event)"> 
    <s:FormItem label="RESTful"> 
     <s:TextInput id="rESTfulTextInput" text="{RESTfulResult.lastResult as String}"/> 
    </s:FormItem> 
</s:Form> 


</s:Application> 

这是代码加入你的建议正确的语法时的样子LXX

<?xml version="1.0" encoding="utf-8"?> 

<cross-domain-policy> 
<allow-access-from domain="http://my-server-name-dev3/RestService/Service.svc/XMLService/hi" /> 
</cross-domain-policy> 
<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" 
      xmlns:restsrv="services.restsrv.*" 
      minWidth="955" minHeight="600" applicationComplete="init()"> 

回答

1

如果不从http://servername也运行此代码你有相同的起源政策问题。您可以解决它将客户端主机添加到服务器中的crossdomain.xml。

对于例如,你必须添加

<allow-access-from domain="localhost"/> 
+0

我检查,我们有专门的服务器上的crossdomain.xml本地主机。我试图在我的代码中输入这个,但得到的格式错误。 – nholloway4 2012-02-16 19:28:27

+0

您必须在crossdomain.xml中有该行,而不是在客户端代码中。 – Ixx 2012-02-18 23:40:44

+0

真棒谢谢,我会尝试这个 – nholloway4 2012-02-20 01:10:26