我有一个控制器,其中包含在我的数据库中创建行的路径
页面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:意外的令牌
如何解析它以便我可以访问数据对象?
答案 0 :(得分:0)
您可以使用控制器中的params[:data]
检查参数中的数据。您发送请求的所有内容都将作为控制器中的参数收到。只有您在标题中发送的数据才会被收到为params。
答案 1 :(得分:0)
Pardeep几乎是正确的。您需要使用params
方法来访问您发送的数据对象中的值。所以params ['play_position']等等。
明确列出您期望和允许的密钥是一种安全性最佳做法。有关强参数,请参阅Rails指南。
http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters