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

时间:2009-04-23 18:31:14

标签: ruby-on-rails flex httpservice

我无法让我的flex应用向我的Rails应用发送POST请求。似乎总是发送GET。

这是我的服务声明:

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

在我的应用程序init函数中,我将方法设置为POST:

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

然而,当我发送请求时,我的Rails应用程序仍然将请求视为发布请求。我知道这个,因为如果我在routes.rb文件中要求请求POST:

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

请求失败,我可以在开发日志中看到:

“处理ApplicationController #index(适用于2009-04-23 14:25:35的127.0.0.1)[GET], ActionController :: MethodNotAllowed(仅允许发布请求。):“

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

如果没有变量发送,旧版本的Flash Player(在某些浏览器中)会自动将您的请求从POST切换到GET。

尝试在您的请求中添加一个参数,看看是否可以修复它。

将Flash Player与Restful Rails集成?

为其他一些问题做好准备:

  1. Flash Player只能接受200的HTTP状态代码,其他所有内容都会引发异常并阻止您访问邮件正文。
  2. 您无法发送PUTS或DELETE HTTP方法

答案 1 :(得分:0)

我相信它只有200个。