2011-11-06 3 views
1

J'écris une application Flex qui utilise HTTPService pour communiquer avec un script PHP, afin de faire une requête sur une base de données. Tout fonctionne correctement si j'utilise une requête GET, mais cela ne fonctionne pas avec POST. Pour une raison étrange, le script php reçoit actuellement une requête GET au lieu de POST. En outre, il semble ne pas porter les paramètres que j'ai envoyés à partir de l'application flexible.POST envoyé en tant que GET

Voici une partie du code 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();        
     } 

je l'ai déjà trouvé d'autres fils de personnes ayant un problème similaire, mais aucun d'entre eux m'a aidé avec ce ... Est-ce que quelqu'un sait pourquoi cela se passe-t-il, ou avez-vous une idée sur la façon de résoudre ce problème?

Répondre

0

Ce que vous faites devrait fonctionner. Y a-t-il une redirection en place sur le serveur? Je crois que ceux-ci changeraient le type de demande d'un courrier à un Get.

Dans Flex 2 jours, avant l'ajout de l'attribut de méthode à la balise HTTPService; J'ai rencontré des problèmes bizarres lors de l'accès aux API REST YouTube. Il fallait obtenir des requêtes, mais la valeur par défaut pour HTTPService était post. J'ai été capable de contourner cela en spécifiant un en-tête HTTP à obtenir au lieu de POST. Peut-être que vous pouvez utiliser la même approche, mais à l'inverse.

Essayez quelque chose comme ça avant de faire l'appel:

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

Je suis juste envoyer la demande de l'application sur mon pc, directement au script php sur le web, sans rediriger quoi que ce soit. J'ai également essayé de spécifier la méthode POST comme vous l'avez dit, mais cela n'a pas fonctionné. J'ai lu dans certaines pages que lorsque j'envoie un POST vide sur flex, il est converti en GET. Mais même en envoyant le POST avec quelques paramètres, le script PHP obtient un GET vide – Thiago

Questions connexes