2011-11-06 65 views
1

我正在編寫一個使用HTTPService與php腳本進行通信的Flex應用程序,以便對數據庫執行查詢。 一切工作正常,如果我使用GET請求,但它不適用於POST。出於某種奇怪的原因,php腳本實際上是接收GET請求而不是POST。此外,它似乎不攜帶我從Flex應用程序發送的參數。作爲GET發送的POST

這裏是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

你在做什麼應該工作。服務器端是否有重定向?我相信這些會將請求類型從Post改爲Get。

在Flex 2中,方法屬性被添加到HTTPService標籤之前;訪問YouTube REST API時,我遇到了一些奇怪的問題。它需要獲取請求,但HTTPService的默認值是post。我能夠通過指定一個HTTP頭來GET而不是POST來解決這個問題。也許你可以使用相同的方法,但相反。

嘗試這樣的事情呼叫前:

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

我只是把從應用程序請求在我的電腦,直接在網絡上的PHP腳本,沒有任何重定向。 我也試着指定POST的方法,正如你所說的,但它沒有奏效。 我讀過一些頁面,當我在flex上發送空POST時,它會轉換爲GET。但即使使用一些參數發送POST,php腳本也會獲得一個空的GET – Thiago