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

Rails 4 trying to parse POST JSON in controller

本文关键字:POST JSON 控制器 Rails      更新时间:2023-09-26

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

页面model.js有一个函数,可以在后执行ajax

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);

然后我有控制器

render:none=>true,:status=>200,:content_type=>:json

这发送了一个成功的200响应

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

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

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

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

Pardeep几乎是正确的。您需要使用params方法来访问您发送的数据对象中的值。因此参数["播放位置"]等

明确列出您期望和允许的密钥是一种安全性最佳实践。有关强参数,请参见Rails Guide。

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

您可以使用控制器中的params[:data]在参数检查中获取数据。您发送的所有请求都将作为控制器中的参数接收。只有在标头中发送的数据未作为参数接收。