Rails 4试图解析控制器中的POST JSON

时间:2015-10-30 03:26:33

标签: javascript ruby-on-rails json ajax

我有一个控制器,其中包含在我的数据库中创建行的路径

页面model.js有一个执行ajax post

的函数
function autoSaveVideo(playPos){
        $.ajax({
            type: "POST",
            url: "/video_views/create",
            dataType: "json",

            data: { 
                play_position: 0,
                user_id: $('.user_id').text(),
                video_id: $('.video_id').text()
            },
            error: function (data) {
                console.log(data);
                return data
            }
        });
        setTimeout(autoSaveVideo, 6000);

然后我有控制器

渲染:没有=> true,:status => 200,:content_type => :JSON

这会发送成功的200响应

但如果我添加到video_views_controller.rb< - 编辑并注意:不是视频控制器

jData = JSON.parse(request.body.read)

我在控制台中得到了一个795:意外的令牌

如何解析它以便我可以访问数据对象?

2 个答案:

答案 0 :(得分:0)

您可以使用控制器中的params[:data]检查参数中的数据。您发送请求的所有内容都将作为控制器中的参数收到。只有您在标题中发送的数据才会被收到为params。

答案 1 :(得分:0)

Pardeep几乎是正确的。您需要使用params方法来访问您发送的数据对象中的值。所以params ['play_position']等等。

明确列出您期望和允许的密钥是一种安全性最佳做法。有关强参数,请参阅Rails指南。

http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters