我必须完成的具体行动Rails的会话Ajax调用
$.ajax({
type: "POST",
url: $("#myform").prop('action'),
data: $("#myform").serialize(),
xhrFields: {withCredentials: true},
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').last().attr('content'));
}
});
这个Ajax调用指的创建操作后,该Ajax调用期间不会保存,所以我想保存表单的PARAMS在我的会话之前创建的。所以我把这个创建操作
def create
session[:my_session].deep_merge!(params[:user])
puts session[:my_session]
我打印了会议,以确保从它包含正确的参数,可以和是的,这已经被印有正确的价值观服务器。
{"profile_id"=>"1000", "first_name"=>"john", "last_name"=>"vieira", "email"=> "[email protected]"}
的这里的问题是,通话结束后,会议不会保存我已经存储!这意味着它这个任务之前存储的最新数据中的数据。我搜索了那个错误,我得知它可能是CSRF令牌错误,我通过添加beforeSend
函数来修复它,但我仍然有同样的问题,所以有什么建议吗?
你怎么确定会话没有正确存储? –
@MikeCampbell在服务器控制台中打印会话,并且它看起来有正确的值 – Azzurrio