首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >参数变量没有用JSON post data....Why填充?

参数变量没有用JSON post data....Why填充?
EN

Stack Overflow用户
提问于 2012-07-14 23:12:59
回答 2查看 1.4K关注 0票数 2

我以前在一些其他领域使用过这个服务,但现在我似乎不能让它工作,也不太明白为什么。

我将以下json发布到我的Rails应用程序(使用RestClient 2.4进行测试):

代码语言:javascript
运行
AI代码解释
复制
{
    "camp":{
        "total": 100,
        "number": "epw1f6e"
    },
    "machine":{
        "serial_number": "1234567",
        "token": "fONxDN"
    }
}

Camp控制器:

代码语言:javascript
运行
AI代码解释
复制
def create
    if is_it_json?
      logger.debug params.inspect
      machine = Machine.find_by_serial_number(params[:machine][:serial_number])
...

从记录器中,我得到的参数是:{"action"=>"create",“controller”=>“=>”}

json信息在哪里??

我的日志错误:

代码语言:javascript
运行
AI代码解释
复制
Started POST "/camps" for 127.0.0.1 at 2012-07-15 00:08:21 +0100
Processing by CampsController#create as JSON
WARNING: Can't verify CSRF token authenticity
{"action"=>"create", "controller"=>"camps"}
Completed 500 Internal Server Error in 2ms

NoMethodError (undefined method `[]' for nil:NilClass):
  app/controllers/camps_controller.rb:24:in `create'

我可能做错了什么?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-15 13:24:05

经过大量的阅读和提问,我找到了解决方案:

参数没有被填充,因为我缺少头(我有接受,但缺少内容类型):

代码语言:javascript
运行
AI代码解释
复制
Accept: application/json
Content-type: application/json

添加头部解决了这个问题。

票数 6
EN

Stack Overflow用户

发布于 2012-07-14 23:41:46

无法验证CSRF令牌的真实性{"action"=>"create",“=>”=>“camps”}

在2毫秒内完成500个内部服务器错误

当一个无效的(或不存在的) CSRF令牌与您的json一起发布时,就会抛出这个错误。CSRF需要附加到任何已发布数据的标头。为了进行测试,您可以通过向控制器添加以下内容来禁用CSRF令牌(对于Rails 3):

protect_from_forgery :除了=>:创建

当网站投入生产时,不要把它留在你的控制器中。CSRF令牌可防止CSRF攻击。有关更多详细信息,请参阅Ruby on Rails Security Guide

如果成功了,请让我知道!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11488102

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文