我正在编写一个使用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();
}