POST作为GET发送


POST being sent as a GET

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

这是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();                              
        }

我已经找到了其他一些有类似问题的人,但是他们没有一个人帮助我解决这个问题…有人知道为什么会这样吗,或者有什么办法解决这个问题吗?

你所做的应该是有效的。在服务器端有任何重定向吗?我相信这些会将请求类型从Post更改为Get。

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

在调用之前尝试这样做:

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