jquery - 使用 jQuery 创建表单,正常提交后 session 变量消失

标签 jquery ruby-on-rails ruby-on-rails-3 session session-variables

我有以下 jQuery js 在我的 View 中插入表单(在 application.js 中):

$("#add_new_quote").click(function() {
    $(".quote:first").prepend("<form action=\"" + window.location + "\" accept-charset=\"UTF-8\" method=\"post\"> " +
        "Quote: <input id=\"quote_text\" name =\"quote_text\" type=\"text\" maxlength='145' size='100'>" +
        "<input name=\"submit\" type=\"submit\" value=\"Add\">" +
        "</form>" +
        "<br>");
});

当我点击提交时,我设置的所有 session 变量都会以某种方式丢失,我不知道为什么以及如何丢失。例如,我在 session 变量(session[:user_id])中设置用户的id以供引用,但提交后它是空白的。我尝试在 View 中使用 form_tag 添加表单,它工作正常,所以我想我错过了一些重要的东西......

我正在使用 Rails 3 和 jQuery 1.5。

最佳答案

如果添加此内容,它将设置 CSRF token ...

// ahead of the form string
var token = $('meta[name="csrf-token"]').attr('content');

// then in the form string
"<input name='authenticity_token' type='hidden' value='" + token + "'/>"

如果您无法使用 AJAX,这应该可以解决问题,AJAX 将为您做到这一点。

关于jquery - 使用 jQuery 创建表单,正常提交后 session 变量消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213749/

相关文章:

jquery - 直到第二次追加调用时图像才显示在 <li> 中

php - 使用 ajax jquery php mysql 检查用户名

c# - 使用选择更改淡出或淡入另一个字段

ruby-on-rails - 为什么我的 Upstart Unicorn Rails 服务器出现错误 "rackup file (config.ru) not readable"

ruby-on-rails - 为什么不使用全局(美元符号 $)变量?

javascript - 元素符号导航中的 jssor slider 错误

ruby-on-rails - (Heroku + Sidekiq) 我对连接池如何工作的理解正确吗?

css - 指向样式表的链接包括显示在 HTML 中,但是当 Turbolinks 打开时样式没有得到应用?

ruby-on-rails - 使用值数组编写 where 语句的正确方法

jquery - 将 Rails 3 UJS 的 form_remote_tag 转换为 form_for