您好,并提前感谢您提供的任何帮助。
我的AIR应用程序查询Web服务以查看要构建的组件。返回的XML示例是:
<item>
<type>EventList</type>
<url><![CDATA[http://dashboard/cgi-bin/dataService.pl?type=ManagedEvents]]></url>
<index>4</index>
<title>Index 4 eventlist</title>
<description>Application 4</description>
</item>
我正在尝试将存储在字段中的URL传递给mxml组件的HTTPService,以便该组件可以检索一组数据。封闭的应用程序解析了上面的XML,然后执行:
component.getData(url);
组件getData中的位置是:
public function getData(url:String):void {
ws = url;
dataService.send();
}
和
<mx:HTTPService
id="dataService"
url="{ws}"
resultFormat="e4x"
result="resultsHandler(event);"
fault="faultHandler(event);"
useProxy="false"
/>
调用send()后,我收到以下错误:
[FaultEvent fault = [RPC Fault faultString =“必须在useProxy设置为false的情况下指定URL。” faultCode =“Client.URLRequired”faultDetail =“null”] messageId = null type =“fault”bubbles = false cancelable = true eventPhase = 2]
关于我做错了什么的线索? (再次感谢您的帮助)
TB
答案 0 :(得分:2)
这取决于你如何定义ws变量。它应该有一个[Bindable]元标记,以指定它可以用于数据绑定。例如:
[Bindable]
public var ws:String;
当然你也可以显式设置HTTPService对象的url,而不是使用数据绑定,如下所示:
public function getData(url:String):void {
dataService.url = url;
dataService.send();
}
希望这有帮助。
答案 1 :(得分:1)
数据绑定通过事件系统异步工作,因此在更改可绑定变量后,绑定会发生一些未指定的时间。在您的情况下,当您调用dataService.send()时,ws的更新事件尚未触发。这就是直接更改url属性的原因,而绑定则不然。
如果您需要使用数据绑定,因为您的应用程序设计阻止您直接访问服务,我建议使用您控制的getter和setter函数绑定到属性。