httpservice ...不适用于localhost

时间:2010-11-07 21:14:00

标签: flex

我正在使用远程服务器上的php文件制作一个非常简单的httpservice请求:

<?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:halo="library://ns.adobe.com/flex/halo"
           >

<fx:Script>
    <![CDATA[
        import mx.rpc.events.ResultEvent;
        private function check(evt:ResultEvent):void
        {
            if(service.lastResult.output == "yes")

            {
                test.text = "successful";
            } 

        }

    ]]>
</fx:Script>


<fx:Declarations>

<mx:HTTPService id="service" result="check(event)" showBusyCursor="true" method="POST" url="http://www.example.com/php.php" useProxy="false">
</mx:HTTPService>

</fx:Declarations>


<mx:VBox width="100%" height="100%">

<mx:Button x="10" y="122" label="Submit" id="Submit" click="service.send();"/>
<mx:TextArea id="test" width="50%" height="50%" />

</mx:VBox>

</s:Application>

当我在远程服务器上运行生成的flash文件时,它100%工作,test.text被填充为“成功”。

但是,当我在localhost上运行时,test.text仍为空白。如果我在Flex中检查我的网络监视器,httpservice是成功的,所以crossdomain.xml似乎设置正确...我做错了什么?我一直在旋转我的轮子一段时间没有线索。 THX!

1 个答案:

答案 0 :(得分:0)

您的服务器的crossdomain.xml文件可能不允许这样做,或者您可能没有。\ / p>

当Flash播放器查找从SWF本身以外的其他域提供的某些远程资料时,它会在域根目录中检查名为crossdomain.xml的文件,以确保服务器正常。

你可能想在这里放一些只允许一切的东西,直到你完成本地开发......

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only"/>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="SOAPAction"/>
</cross-domain-policy>