Jquery 在ajax帖子中设置rails会话
这是个奇怪的问题,希望有人能帮我解决 我想在我的rails控制器中设置一个会话,我通过jQueryAjaxPost点击它 这是我通过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
$.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可能相关: