2012-02-16 1 views
1

Я довольно новичок в Flex (фактически получил в него ... lol). Я пытаюсь отобразить сообщение, которое я создал в веб-службе. Я продолжаю получать ошибку возврата "Ошибка доступа к системе безопасности URL:"RESTful Web Services for Flex

Вот копия моего кода ... Я знаю, что это может быть что-то простое. Я создал службу данных для настройки 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

+0

Вы должны иметь эту строку в crossdomain.xml, а не в своем клиентском коде. – Ixx

+0

Огромное спасибо, я попробую это – nholloway4