Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml HTTPService中的动态url不工作_Xml_Apache Flex_Flex3_Mxml_Httpservice - Fatal编程技术网

Xml HTTPService中的动态url不工作

Xml HTTPService中的动态url不工作,xml,apache-flex,flex3,mxml,httpservice,Xml,Apache Flex,Flex3,Mxml,Httpservice,您好,提前感谢您提供的任何帮助 我的AIR应用程序查询Web服务以查看要构建的组件。返回的XML示例如下: <item> <type>EventList</type> <url><![CDATA[http://dashboard/cgi-bin/dataService.pl?type=ManagedEvents]]></url> <index>4</index> <title>In

您好,提前感谢您提供的任何帮助

我的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>
其中,组件getData中的:

public function getData(url:String):void {
    ws = url;
    dataService.send();
}


调用send()后,会出现以下错误:

[FaultEvent fault=[RPC faultString=“URL必须在useProxy设置为false的情况下指定。”faultCode=“Client.URLRequired”faultDetail=“null”]messageId=null type=“fault”bubbles=false可取消=true eventPhase=2]

关于我做错了什么有什么线索吗?(再次感谢您的帮助)


TB

这取决于您如何定义ws变量。它前面应该有一个[Bindable]元标记,以指定它可以用于数据绑定。例如:

[Bindable]
public var ws:String;
当然,您也可以显式设置HTTPService对象的url,而不是使用数据绑定,如下所示:

public function getData(url:String):void {
    dataService.url = url;
    dataService.send();
}

希望这有帮助。

数据绑定通过事件系统异步工作,因此,在更改bindable变量后,绑定会在未指定的时间内发生。在您的情况下,调用dataService.send()时ws的更新事件尚未触发。这就是为什么直接修改url属性有效,而绑定无效


如果您需要使用数据绑定,因为您的应用程序设计阻止您直接访问服务,我建议您使用由您控制的getter和setter函数绑定到属性。

我有一个crossdomain.xml文件可以工作。在上面,ws被定义为
[Bindable]公共变量ws:String有趣的是,如果我将上面的getData更改为:getData(url:String):void{dataService.url=item;dataService.send();},它就可以工作了。这是否意味着{ws}存在数据绑定问题?
[Bindable]
public var ws:String;
public function getData(url:String):void {
    dataService.url = url;
    dataService.send();
}