【问题标题】:Problem sending post request from Flex app to Ruby on Rails back end从 Flex 应用程序向 Ruby on Rails 后端发送发布请求时出现问题
【发布时间】:2009-04-23 18:31:14
【问题描述】:

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

这是我的服务声明:

<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 应用程序仍将请求视为发布请求。我知道这一点是因为如果我要求在我的 routes.rb 文件中发布请求:

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

请求错误,我可以在我的开发日志中看到:

"处理 ApplicationController#index (for 127.0.0.1 at 2009-04-23 14:25:35) [GET], ActionController::MethodNotAllowed(只允许发布请求。):"

有人知道为什么会这样吗?

【问题讨论】:

    标签: ruby-on-rails apache-flex httpservice


    【解决方案1】:

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

    尝试在您的请求中添加一个参数,看看是否可以解决问题。

    将 Flash Player 与 Restful Rails 集成?

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

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

    【讨论】:

    • 感谢您的信息。我不久前禁用了后置条件以将此错误放在一边,然后当我启用它时,错误“消失了”。所以这很可能是问题所在。可惜只接受 200 个状态码!它能否检测出未经授权、无法处理、内部服务器错误等之间的区别?
    【解决方案2】:

    我相信实际上只有 200 个。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多