POST отправляется как GET - PullRequest
       7

POST отправляется как GET

1 голос
/ 06 ноября 2011

Я пишу приложение 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();                              
        }

Я уже нашел несколько других тем с похожей проблемой, но никто из них не помог мне с этим ... Кто-нибудь знает, почему это происходит, или есть идеи, как это решить?

1 Ответ

0 голосов
/ 06 ноября 2011

То, что вы делаете, должно работать.Есть ли перенаправление на стороне сервера?Я полагаю, что они изменили бы тип запроса с сообщения на получение.

За 2 дня до того, как атрибут метода был добавлен в тег HTTPService;У меня возникли странные проблемы при доступе к API REST YouTube.Нужно было получать запросы, но по умолчанию для HTTPService было post.Я смог обойти это, указав HTTP-заголовок для GET вместо POST.Возможно, вы можете использовать тот же подход, но в обратном направлении.

Попробуйте сделать что-то подобное перед звонком:

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