JSON解析抛出零错误,而有效载荷没有空值

阿纳迪·米斯拉(Anadi Misra)

我看到了构建我的第一个Rails 4演示应用程序时遇到的一个相当奇怪的问题,我的POST请求通过angular工作,但是在控制器上解析它会引发错误

Started POST "/home/contact" for 127.0.0.1 at 2015-07-21 18:40:21 +0530
Processing by HomeController#contact as JSON
  Parameters: {"name"=>"Gabbar Singh", "email"=>"[email protected]", "phone"=>"9820420420", "message"=>"kitne aadmi thein", "captcha"=>"03AHJ_VuvKsc5W9IrGKKnitvFp8niuxL2cnpIpJ2WgGXPkQFYVXBe4KKwfcLtVhrx3Juos-R36WcYGScXbJgA9ZLjoznN7ABvjnHlNQ5r5z25-jCs7BKJBf14ITvCqVqYRoU4Je2c7EJXa7K3IjPmNXeWvUosYbLsoGAtnlH17ScIM-MLrm9iDBAJqTO0xiOY4yYI7rYSgfcXcZg7DGLioni8XEelTqgjrlEoK21ORwstV8i90zRfqTmQExs8TjcYFZKzTD4oHqBbsXQCA4GMvrMRiWK5OmzXvauopthhijUDCDJqtg-cWGGuMCOb6dPNkqXW7oEMVCBo-U_e0Nw1dpXh0Goui8pgqvseadEG120d3kVZcke8WcmnIKdi2_VkUxhppOYnXjnAh"}
Completed 500 Internal Server Error in 2ms

TypeError (no implicit conversion of nil into String):
  app/controllers/home_controller.rb:9:in `contact'

ContactRequest目的是如下

class ContactRequest
    include ActiveModel::Model

    attr_accessor :name, :email, :phone, :message, :captcha

    validates :name, presence: true,length: {in:2..255}
    validates :email, presence: true, length: {in:6..255}
    validates :message, presence: true
    validates :phone, presence: true
    validates :captcha, presence: true
end

而发布此数据的角度片段是

        var post_data = {  //prepare payload for request
            'name':$scope.contact.name,
            'email':$scope.contact.email,
            'phone':$scope.contact.phone,
            'message':$scope.contact.message,
            'captcha':$scope.response  //send g-captcha-reponse to our server
        }

        $http.post(
            'home/contact',post_data
        ).success(function(response){
            console.log(response);
            //flush form data
            $scope.contact = {};
            if(response.error === 0){
                $scope.messages = "Thanks!" + $scope.contact.name + "for your request! We will get back to you shortly"
            }else{
                $scope.messages = "We are sorry but your request was not processed, please try again."
            }
        })

出现错误的控制器

class HomeController < ApplicationController

  wrap_parameters false

  def index
  end

  def contact
    @contactReq = HomeHelper::ContactRequest.new(JSON.parse(params[:json]))

    logger.debug "ContactRequest: #{@contactReq.attributes.inspect}"

  end
end

我在日志中或Firebug中没有POST请求有效载荷形式的任何零或空白字段

{
 "name":"Gabbar Singh",
 "email":"[email protected]",
 "phone":"9820420420",
 "message":"kitne aadmi thein",
 "captcha":"03AHJ_VuvKsc5W9IrGKKnitvFp8niuxL2cnpIpJ2WgGXPkQFYVXBe4KKwfcLtVhrx3Juos-R36WcYGScXbJgA9ZL
joznN7ABvjnHlNQ5r5z25-jCs7BKJBf14ITvCqVqYRoU4Je2c7EJXa7K3IjPmNXeWvUosYbLsoGAtnlH17ScIM-MLrm9iDBAJqTO
0xiOY4yYI7rYSgfcXcZg7DGLioni8XEelTqgjrlEoK21ORwstV8i90zRfqTmQExs8TjcYFZKzTD4oHqBbsXQCA4GMvrMRiWK5Omz
XvauopthhijUDCDJqtg-cWGGuMCOb6dPNkqXW7oEMVCBo-U_e0Nw1dpXh0Goui8pgqvseadEG120d3kVZcke8WcmnIKdi2_VkUxhppOYnXjnAh"
}
格言

:jsonparams哈希中没有参数

@contactReq = HomeHelper::ContactRequest.new(JSON.parse(params[:json]))

在上方查看您的日志(靠近参数:)

我认为您想像这样传递params给构造函数:

@contactReq = HomeHelper::ContactRequest.new(params)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java从Json的有效载荷获取字段ID值

Spring JMSListener-应该如何处理空的有效载荷?

解析JWT令牌有效载荷数据以获得android / java中的某些值

Lambda返回有效载荷botocore.response.StreamingBody对象显示,但变量为空

如何检查有效载荷内部的空数组?

无法解析Titanium中的推送有效载荷消息

错误:Dialogflow中新的有效载荷平台不能为空

如何从HTTP JSON响应有效载荷解析值

创建OneDrive文件夹时,如何解决BadRequest错误“无法读取JSON请求有效载荷”?

作用中的有效载荷

触发Webhook时,我没有从trello收到任何有效载荷

PHP-解析JSON有效载荷问题

生成JWT时的有效载荷为空

生成JWS时的有效载荷为空

修改有效载荷字段值

在MuleSoft 4+中,Dataweave 2+如何清除有效载荷?我想向客户端发送空的有效载荷

如何在Dataweave的有效载荷中为几个键的值为null的有效载荷添加错误?

什么是有效载荷?

从有效载荷中获取徽章值

Mule ESB-获取有效载荷值

使用nodeJs的ebay api给出错误“无法为JSON创建xml流读取器:有效载荷格式不正确或有效载荷为空”

没有从JWT的有效载荷中获取所有字段

核心 NFC 有效载荷错误

NGRX 角度有效载荷或无有效载荷

GCP 记录来自有效载荷的有效载荷 (Stackdrive)

有效载荷缓冲区没有 15 个值时如何在有效载荷时阻止有效载荷

BigQuery 上传作业返回错误 - 有效载荷部分计数错误?

Apollo 错误不包含有效载荷

有效载荷 JWT 结构