简体   繁体   English

从Flex应用程序向Ruby on Rails后端发送发布请求时出现问题

[英]Problem sending post request from Flex app to Ruby on Rails back end

I am having trouble getting my flex app to send a POST request to my Rails app. 我无法让我的flex应用程序向我的Rails应用程序发送POST请求。 It seems to always send GET. 似乎总是发送GET。

This is my service declaration: 这是我的服务声明:

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

In my application init function, I set the method to POST: 在我的应用程序初始化函数中,将方法设置为POST:

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

However, my Rails app still sees the request as a post request when I send it. 但是,当我发送请求时,我的Rails应用仍然将请求视为发布请求。 I know this because if I require the request to be POST in my routes.rb file: 我知道这是因为,如果我要求在我的route.rb文件中将请求设为POST:

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

the request faults and I can see in my dev log : 请求失败,我可以在开发日志中看到:

"Processing ApplicationController#index (for 127.0.0.1 at 2009-04-23 14:25:35) [GET], ActionController::MethodNotAllowed (Only post requests are allowed.):" “正在处理ApplicationController#index(对于2009年7月23日14:25:35的127.0.0.1)[GET],ActionController :: MethodNotAllowed(仅允许发布请求。):”

Does anyone know why this is happening? 有人知道为什么会这样吗?

Older versions of the Flash Player (in some browsers) would automatically switch your request from POST to GET if there were no variables being sent. 如果没有发送任何变量,则较旧版本的Flash Player(在某些浏览器中)会自动将您的请求从POST切换为GET。

Try adding a param to your request and see if that fixes it. 尝试将参数添加到您的请求中,看看是否可以解决该问题。

Integrating Flash Player with Restful Rails? 将Flash Player与Restful Rails集成?

Get ready for some other issues too: 也为其他一些问题做好准备:

  1. The Flash Player can only accept HTTP status code of 200, everything else throws an exception and prevents you from getting at the message body. Flash Player只能接受HTTP状态代码200,其他所有内容均会引发异常,并阻止您获取消息正文。
  2. You can't send PUTS or DELETE HTTP methods 您无法发送PUTS或DELETE HTTP方法

我相信实际上只有200个。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM