【问题标题】:How can i post a json data to rails app?如何将 json 数据发布到 rails 应用程序?
【发布时间】:2012-12-20 20:48:24
【问题描述】:

我想发送用户注册信息,下面是请求

curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/users.json -d "{"user" : {"Email":sample@example.com, "密码":qwerty, "password_confirmation":qwerty}}"

但我收到一个错误

MultiJson::DecodeError (795: '{user : {Email:sample@example.com, password:qwerty, password_confirmation:qwerty}}'的意外令牌)

我不知道我做错了什么?请帮帮我。

【问题讨论】:

  • 您的字符串不在引号中,所以这只是一个语法问题。您可以通过jsonlint.com 运行您的数据以确保一切正常。
  • 我按照你说的试过了,但结果是一样的。

标签: ruby-on-rails ruby-on-rails-3 curl


【解决方案1】:

试试这个,

curl -H 'Content-Type: application/json'  -X POST http://localhost:3000/users.json -d "{\"user\":{\"email\":\"sample@example.com\", \"password\":\"qwerty\",\"password_confirmation\":\"qwerty\"}}"

问题在于参数解析,需要在引号内。

【讨论】:

  • 对不起,现在错误已更改为 WARNING: Can't verify CSRF tokenauthity Completed 500 Internal Server Error in 1ms TypeError (can't convert StringIO into String):
  • 是的,现在可以使用了。但我已经尝试从github.com/plataformatec/devise_example 设计示例,我不必将转义序列放在那里。那我该怎么做呢?
  • 你想用这个实现什么?您是否正在使用设计创建远程身份验证?如果是,那么您必须覆盖设备的会话控制器以响应 json 请求。
  • 实际上我现在正在使用简单的 restful 身份验证,但我同时尝试了设计示例,我尝试发布没有转义序列的值,效果很好。所以我也想在这里发送没有转义序列的json。
  • 这里的转义序列只与curl有关,与devise无关。
猜你喜欢
  • 1970-01-01
  • 2011-12-24
  • 2019-09-11
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多