2009-04-23 34 views
0

我無法讓Flex應用程序向我的Rails應用發送POST請求。它似乎總是發送GET。將問題從Flex應用程序發送到Ruby on Rails後端時出現問題

這是我的服務宣言:

<mx:HTTPService id="add_email_service" showBusyCursor="true" result="parseJoinResult();" fault="onJoinFault(event)" useProxy="false" /> 

在我的應用程序初始化函數,我把方法設置爲POST:

add_email_service.url = join_url; 
add_email_service.method = "POST"; 

然而,我的Rails應用程序仍然可以看到該請求作爲post請求當我發送它。我知道這是因爲,如果我需要請求是POST我的routes.rb文件:

# RESTful API for joining a mailing list 
    map.connect 'mailing_lists/join/:id', 
     :controller => 'mailing_lists', 
     :action => 'join', 
     :conditions => { :method => :post} 

的要求錯誤,我可以在我的開發日誌中看到:

「處理的ApplicationController#指數(爲127.0 .0.1 at 2009-04-23 14:25:35)[GET], ActionController :: MethodNotAllowed(只允許發佈請求):「

有沒有人知道爲什麼會發生這種情況?

回答

1

如果沒有變量被髮送,舊版本的Flash Player(在某些瀏覽器中)會自動將您的請求從POST切換到GET。

嘗試添加一個參數給你的請求,看看是否修復它。

集成Flash Player與Restful Rails?

準備好過多了一些其他問題:

  1. Flash播放器只能接受200 HTTP狀態代碼,其他的一切拋出一個異常,並阻止您在郵件正文中獲得。
  2. 無法發送看跌或DELETE HTTP方法
+0

感謝您的信息。我前一段時間禁用了這個帖子條件,把這個bug放在一邊,然後當我啓用它時,bug「消失了」。所以這可能是問題所在。無賴只接受200個狀態碼!它能檢測未經授權的,不可處理的,內部服務器錯誤等的區別嗎? – Tony 2009-05-12 03:36:26

0

我相信這是字面上只有200。