ruby-on-rails - POST json 到 Rails 服务器

标签 ruby-on-rails ruby json http post

def create
  req = ActiveSupport::JSON.decode(request.body)
  if user = User.authenticate(req["email"], req["password"])
    session[:user_id] = user.id
    render :json => "{\"r\": \"t\"}" + req
  else
    render :json => "{\"r\": \"f\"}"
  end
end

'create' 方法在 Controller 中并映射到“/login”,我正在设置正确的内容类型并接受来自 curl 客户端的 header 。我一直收到 422 http 状态响应。

有什么建议吗?

最佳答案

如果您发送正确的 header ,则无需执行“ActiveSupport::JSON.decode”——rails 会为您完成。

您需要在帖子中设置以下标题。

Content-Type: application/json
Accept: application/json

A 422 表示无法处理的实体 --- 通常表示验证失败。

你应该能够拥有。如果不能,则说明您的 header 设置不正确。

def create
  if user = User.authenticate(params["email"], params["password"])
    session[:user_id] = user.id
    render :json => "{\"r\": \"t\"}" + req
  else
    render :json => "{\"r\": \"f\"}"
  end
end

关于ruby-on-rails - POST json 到 Rails 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914745/

相关文章:

javascript - 带有数据类型 "script"的 ajax 请求的额外未知参数

ruby-on-rails - 为什么我不能解析保存到 Ruby 变量中的日期字符串?

ruby-on-rails - Rails to_xml,使用xml属性代替子节点

ruby-on-rails - Rails 3延迟作业重新启动后启动

ruby-on-rails - 无法在 Heroku 上为我的 Rails 应用程序提供种子文件

xml - Scala : JSON or XML, 和哪个中的快速结构化数据到文本?

javascript - 如何让 jquery.Ajax 在 json 响应前面使用 "throw 1; <dont be evil>"?

ruby-on-rails - 如何将 ActiveModel::Serializer 应用于自定义对象?

Ruby - 平台独立的方式来确定所有网络接口(interface)的 IPs?

python - 如何使用 beautifulsoup 从(可能)损坏的 html 中过滤掉 .mp3 链接? (JSON)