2009-04-23 5 views
0

Ich habe Probleme, meine Flex-App dazu zu bekommen, eine POST-Anfrage an meine Rails-App zu senden. Es scheint immer GET zu senden.Fehler beim Senden der Postanforderung von der Flex-App an Ruby on Rails Back-End

Das ist mein Service Erklärung:

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

In meiner Anwendung init-Funktion, stelle ich die Methode POST:

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

jedoch noch meine Rails-Anwendung die Anforderung als eine Post-Anforderung sieht wenn ich es sende. Ich weiß das, weil, wenn ich die Anfrage benötigen POST in meiner routes.rb Datei zu sein:

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

der Anforderung Fehler und ich kann in meinem Dev-Log sehen:

„Verarbeitung Application # Index (für 127,0 .0.1 am 2009-04-23 14:25:35) [GET], ActionController :: MethodNotAllowed (Nur Postanfragen sind erlaubt.): "

Weiß jemand, warum das passiert?

Antwort

1

Ältere Versionen des Flash Player (in einigen Browsern) würden Ihre Anfrage automatisch von POST auf GET umschalten, wenn keine Variablen gesendet werden.

Versuchen Sie einen Parameter zu Ihrer Anfrage hinzuzufügen und sehen Sie, ob das den Fehler behebt.

Integrieren von Flash Player mit Restful Rails?

Machen Sie sich bereit zu für einige andere Probleme:

  1. Der Flash Player nur HTTP-Statuscode 200 annehmen können, alles wirft sonst eine Ausnahme und verhindert, dass Sie an der Nachricht Körper.
  2. Sie können nicht PUTS senden oder DELETE HTTP-Methoden
+0

danke für die info. Ich habe die Post-Bedingung vor einer Weile deaktiviert, um diesen Fehler beiseite zu legen, und dann, als ich es aktiviert habe, ist der Fehler "verschwunden". Das könnte sehr wohl das Problem gewesen sein. Schade, nur 200 Statuscodes zu akzeptieren! Kann es den Unterschied zwischen nicht autorisierten, nicht verarbeitbaren, internen Serverfehlern usw. erkennen? – Tony

0

Ich glaube, es ist buchstäblich 200 nur.