Jquery 在ajax帖子中设置rails会话

Jquery 在ajax帖子中设置rails会话,jquery,ruby-on-rails,session,Jquery,Ruby On Rails,Session,这是个奇怪的问题,希望有人能帮我解决 我想在我的rails控制器中设置一个会话,我通过jQueryAjaxPost点击它 这是我通过ajax提交的常规rails表单 $.post($(this).attr('action'), $(this).serialize(), function(data){ }, 'json'); 它击中了潜在客户控制器 def create @lead = Lead.new(params[:lead]) @lead.save! if

这是个奇怪的问题,希望有人能帮我解决

我想在我的rails控制器中设置一个会话,我通过jQueryAjaxPost点击它

这是我通过ajax提交的常规rails表单

 $.post($(this).attr('action'), $(this).serialize(), function(data){

 }, 'json');
它击中了潜在客户控制器

def create
    @lead = Lead.new(params[:lead])
    @lead.save!

    if @lead.save
      session[:lead] = "#{@lead.id}"
    end

  end
但是,会话似乎没有在ajax调用中设置


有人对此有想法吗?

您是否确实看到在控制器中调用create(它是否出现在日志中)


顺便说一句:您调用了save()两次,但这不是问题所在(如果保存成功,多次调用save每次都返回true)。

问题可能是因为您使用的是本地主机,而不是一个合适的域。我听说有些浏览器忽略了此类会话


另一个问题可能是您没有发送用于阻止伪造攻击的CSRF身份验证令牌,这在默认情况下是XHR请求的一个要求,而不仅仅是表单(尽管在您最初发布文章时,rails的版本可能没有)

是的,它显示在日志中,于2010-12-02 21:23:24+0000开始发布127.0.0.1的“/leads”,由LeadsController处理#创建为JSON可能相关: