Ruby on rails 在rails应用程序中进行ajax调用时会话被破坏
我有RubyonRails网站。应用程序控制器看起来像Ruby on rails 在rails应用程序中进行ajax调用时会话被破坏,ruby-on-rails,ruby-on-rails-3,session,Ruby On Rails,Ruby On Rails 3,Session,我有RubyonRails网站。应用程序控制器看起来像 class ApplicationController < ActionController::Base protect_from_forgery before_filter :handle_cookie DEFAULT_MARKETPLACE = 1 def handle_cookie if (session[:isImpersonation].nil?) puts "initilized to
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :handle_cookie
DEFAULT_MARKETPLACE = 1
def handle_cookie
if (session[:isImpersonation].nil?)
puts "initilized to 0"
session[:isImpersonation] = 0
end
end
我正在初始化会话对象中的变量isImpersonation,如果它为nil。当发出普通请求(即非ajax)时,变量初始化一次,即会话对象保留变量isImpersonation
但是当我调用ajax时,比如:
$.ajax({
url : "/a/fetch",
type : "POST",
data : {
runDate : $('#rundate_select :selected').val(),
id : idVal,
mp : mpVal
},
beforeSend : function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]')
.attr('content'));
},
success : function(data) {
var $elem = $('<div>').html(data);
$("#overall").html(
$elem.find('#overall').html());
},
error : function(data) {
}
});
在这个ajax调用过程中,会话中的变量被重新初始化。我搜索并跟踪了帖子:
但是,这对我不起作用。你知道我遗漏了什么吗?最后,我终于找到了工作。我失踪了:
<%= csrf_meta_tags %>
在我的布局文件的标签中,即application.html.erb当进行ajax调用时,日志会说什么?