当前位置:  开发笔记 > 前端 > 正文

为什么post方法似乎正在清除我的rails会话数据?

如何解决《为什么post方法似乎正在清除我的rails会话数据?》经验,为你挑选了2个好方法。

在用户登录并且他们的用户名已经过身份验证并保存在会话[:user_name]中之后,当使用method ="post"(使用标准html)提交表单时,将清除所有会话数据并将用户路由回登录页面.如果方法设置为get,则不会发生这种情况.

当我使用导轨"form_tag"生成这些额外的行时,后期工作:

怎么了?



1> monocle..:

你在使用Rails 3.0.4吗?听起来它可能与CSRF修复有关.

如果您需要特定于您需要的修补程序,则可以在控制器中覆盖#handle_unverified_request.请参阅https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/request_forgery_protection.rb.

这是OmniAuth和OpenId这个问题的一个例子.(参见"Rails 3.0.4中的CSRF保护"一节)



2> Abdo..:

如果您要创建自己的html表单,也会发生此问题.

如果你在不知道原因的情况下被重定向,那是因为ApplicationController中的"protect_from_forgery"

为了允许您的表单发布,请将以下代码添加到其中(或使用form_tag,下面的说明):

... <%= hidden_field_tag "authenticity_token", form_authenticity_token %> ...

"form_tag"工作的原因是因为form_tag为您生成隐藏字段=)

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有