Ruby on rails Rails在使用remote=true执行ajax时不保留会话数据
我正在使用rails应用程序,并尝试使用rails remote执行ajax请求:true。该请求应该触发我的一个控制器操作Ruby on rails Rails在使用remote=true执行ajax时不保留会话数据,ruby-on-rails,ajax,session,Ruby On Rails,Ajax,Session,我正在使用rails应用程序,并尝试使用rails remote执行ajax请求:true。该请求应该触发我的一个控制器操作 在应用程序控制器中,在执行操作之前执行一个before\u filter回调。它检查会话用户id,如下所示: if会话[:user\u id] 此检查无法强制重定向。当我选中会话[:user\u id]时,它是nil,这意味着会话cookie没有通过。我有一堆对控制器执行ajax的js,有趣的是,它们都可以工作,通过检查。所以有两个问题: 我需要一些额外的代码才能使re
在应用程序控制器中,在执行操作之前执行一个before\u filter
回调。它检查会话用户id,如下所示:
if会话[:user\u id]
此检查无法强制重定向。当我选中会话[:user\u id]时,它是nil,这意味着会话cookie没有通过。我有一堆对控制器执行ajax的js,有趣的是,它们都可以工作,通过检查。所以有两个问题:
我需要一些额外的代码才能使remote:true正常工作吗?有没有办法设置会话cookie或smth
这是验证未经授权的ajax请求的正确方法还是有更好的方法
我使用的是Rails 4
谢谢我正在使用Desive,因此我不确定这是否直接适用,但是,您还必须在表单标签中传递
真实性\u令牌
<%= form_tag my_action_path(@version), {remote: true}, authenticity_token: true do %>
它可能是不同的,但相似。不过我想这对你来说很有用
另一件需要注意的事情是查看一个有效的表单,并查看在控制台中将哪些数据发布到服务器,因为rails会回显传递到服务器的数据,您可以使用它来帮助我们进行调试。在所有有效的会话请求中(您登录时执行的任何操作),它应该具有会话\u id
或真实性\u令牌
或类似的内容