在我的Rails应用程序中,我有一个执行ajax请求的操作。当我发出这个ajax请求时,使用xhr.setRequestHeader设置CSRF令牌在开发中工作正常但在生产中(heroku)却没有。什么可能是一个问题?或者我如何在firebug中调试这个?
这是我的ajax设置
jQuery.ajaxSetup({
'beforeSend': function(xhr, settings) {
xhr.setRequestHeader("Accept", "application/json");
var token=$('meta[name="csrf-token"]').attr('content');
xhr.setRequestHeader('X-CSRF-Token',token );
settings['dataType'] = "json";
settings['contentType'] = "application/json";
}
});
答案 0 :(得分:1)
最后我想通了,为了在生产中工作,我必须在session_store.rb
中配置生产域,如下所示
YourApp::Application.config.session_store :cookie_store,
{key: '_yourApp_session', domain: '.yourDomain.com'}