jquery - Rails session 正在重置

标签 jquery ruby-on-rails session csrf-protection

我遇到了一个奇怪的问题。我最近检测到通过 AJAX 发布的文本字段出现错误。经过调查,我发现 session 会针对此 POST AJAX 请求而重置。我想一定是csrf问题。我检查了 token ,它像在布局文件中一样正确传递:

  <%= javascript_tag "var AUTH_TOKEN = #{form_authenticity_token.inspect};" if protect_against_forgery? -%>

我的 AJAX 请求如下所示:

 <script type="tex/javascript">
            $(document).ready(function(){
                    $("#post_msg").click(function(){
                            var update = $("#msg").val();
                            var authenticity_token = AUTH_TOKEN;
                            $.ajax({
                                    type: "POST",
                                    url: "/messages.js",
                                    data: "msg[text]="+escape(msg) + "&_csrf_token="+encodeURIComponent(authenticity_token),
                                    dataType: "json",
                                    success: function(msg){
                                      // Code to append the msg to DOM
                                    )

但是在调试器中,我注意到 csrf token 与哈希中已有的 token 不同。我无法理解这一切。有什么线索可能是这一切的原因吗​​?

最佳答案

在我的一个正在运行的 Rails 3 应用程序中, token 名称是 authenticity_token 并且实际 token 本身在 POST 之前不会进行编码。

关于jquery - Rails session 正在重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769126/

相关文章:

javascript - Jquery 在最后一个子按键上附加输入

java - 使用 jsoup 和 jquery 显示图像文件大小

ruby-on-rails - 手动设置 Carrierwave Uploader 的图像路径

ruby-on-rails - rake db 错误 :migrate with mongrel, "Could not find mongrel"

Android 服务器-客户端应用程序 session 问题

node.js - 存储选项上的express和connect-redis错误

c# - 更改 ASP.NET session 状态 cookie 的到期时间

javascript - 嵌入的 Youtube 视频全屏或导致调整大小

javascript - PHP 和 Ajax 在回调和返回数组中使用 foreach 循环

ruby-on-rails - 正在尝试安装 libv8, "failed to build gem native extension"