我正在编写一个Flex应用程序,它使用HTTPService与php脚本进行通信,以便对数据库进行查询。 如果我使用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();
}
我已经找到了一些有类似问题的人的其他线程,但他们都没有帮助我... 有谁知道为什么会这样,或者对如何解决这个问题有所了解?
答案 0 :(得分:0)
你在做什么应该工作。服务器端是否有任何重定向?我相信那些会将请求类型从Post更改为Get。
在Flex 2天内,在将method属性添加到HTTPService标记之前;访问YouTube REST API时,我遇到了一些奇怪的问题。它需要获取请求,但HTTPService的默认值是post。我能够通过指定GET而不是POST的HTTP头来解决这个问题。也许你可以使用相同的方法,但相反。
在拨打电话之前尝试这样的事情:
private function sendCode() :void{
userRequest.headers['X-HTTP-Method-Override'] = 'POST';
userRequest.send();
}