读书人

flex Httpservice 访问php 参数为null

发布时间: 2012-05-21 18:04:41 作者: rapoo

flex Httpservice 访问php 参数为null
看cookbook到了数据访问。开始便给出了Httpservice示例,我按着书中所说布置了工程,把代码copy到工程里:
这是flex的代码:

XML code
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">    <mx:HTTPService url="http://localhost:18000/index.php"        id="service"        result="serviceResult(event)" fault="serviceFault(event)"        method="GET" contentType="application/xml"        useProxy="false">        <mx:request xmlns="">            <id>{requestedId}</id>        </mx:request>    </mx:HTTPService>    <mx:Script>        <![CDATA[            import mx.rpc.events.FaultEvent;            import mx.rpc.events.ResultEvent;            import mx.controls.Alert;                        [Bindable]            private var requestedId:String;                        //trace the result of the service out            private function serviceResult(event:Event):void {                trace(service.lastResult.name);            }            // in the event that the service faults or times out            private function serviceFault(event:Event):void {                trace('broken service');            }            private function callService():void {                try{                    requestedId = input.text;                    service.send();                }catch(e:Error){                    Alert.show(e.message);                }            }        ]]>    </mx:Script>    <mx:TextInput id="input"/>    <mx:Button label="get user name" click="callService()"/>    <mx:Text text="{service.lastResult.id}"/>    <mx:Text text="{service.lastResult.name}"/>    <mx:Text text="{service.lastResult.age}"/></mx:Application>


这是PHP后端代码:
PHP code
<?php    $id = $_GET["id"];    echo('<id>'.$id.'</id><name>ok</name><age>30</age>');?>


flex通过localhost:18000访问index.php,同时向php用get形式传送一个key为id的值。实际运行后,flex的确可以访问到index.php,但问题是只能取到echo('<id>'.$id.'</id><name>ok</name><age>30</age>');中的name与age的值,由flex传过去的id为null。
php端通过localhost:18000/index.php?id=111 证明id是可以获取的,无错。
请大家帮忙找找原因,不胜感激!

[解决办法]
至于FLEX传过去的ID没拿到,估计是requestedId 还没拿到值,你可以试试先给这个变量一个值
private var requestedId:String = “test”;
建议你不要用
<mx:request xmlns="">
<id>{requestedId}</id>
</mx:request>这种方式,
直接将参数放到send方法里传过去就好了,例如service.send({id: requestedId});
[解决办法]
在send之前改变url也行
直接在URL后面带 ?id=变量 那样稳的传的出去

读书人网 >flex

热点推荐