2011-11-06 48 views
1

我正在编写一个使用HTTPService与php脚本进行通信的Flex应用程序,以便对数据库执行查询。 一切工作正常,如果我使用GET请求,但它不适用于POST。出于某种奇怪的原因,php脚本实际上是接收GET请求而不是POST。此外,它似乎不携带我从Flex应用程序发送的参数。作为GET发送的POST

这里是Flex代码的一部分:

<mx:HTTPService id="userRequest" url="url" 
       useProxy="false" method="POST" result="checkTransmissionCode()"> 
    <s:request xmlns=""> 
     <transmissionCode>{transmissionCode_TextInput.text}</transmissionCode>    
    </s:request>   
</mx:HTTPService> 

private function sendCode() :void{ 
    userRequest.send(); 
} 

private function checkTransmissionCode() :void {                    
      if(userRequest.lastResult.authorization=="correct"){ 
       this.currentState='transmission'; 
      } 
      else{ 
       Alert.show("Invalid"); 
      } 
      userRequest.clearResult();        
     } 

我已经发现一些人其他线程类似的问题,但没有人帮我这个... 有谁知道为什么会发生这种情况,或者对如何解决这个问题有任何想法?

回答

0

你在做什么应该工作。服务器端是否有重定向?我相信这些会将请求类型从Post改为Get。

在Flex 2中,方法属性被添加到HTTPService标签之前;访问YouTube REST API时,我遇到了一些奇怪的问题。它需要获取请求,但HTTPService的默认值是post。我能够通过指定一个HTTP头来GET而不是POST来解决这个问题。也许你可以使用相同的方法,但相反。

尝试这样的事情呼叫前:

private function sendCode() :void{ 
userRequest.headers['X-HTTP-Method-Override'] = 'POST';   
userRequest.send(); 
} 
+0

我只是把从应用程序请求在我的电脑,直接在网络上的PHP脚本,没有任何重定向。 我也试着指定POST的方法,正如你所说的,但它没有奏效。 我读过一些页面,当我在flex上发送空POST时,它会转换为GET。但即使使用一些参数发送POST,php脚本也会获得一个空的GET – Thiago