我必須完成的具體行動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