xhr.setRequestHeader('X-CSRF-Token',token)在dev中工作但不在生产中

时间:2012-12-28 14:39:30

标签: ruby-on-rails ajax ruby-on-rails-3 jquery

在我的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";
  }
 });

1 个答案:

答案 0 :(得分:1)

最后我想通了,为了在生产中工作,我必须在session_store.rb中配置生产域,如下所示

   YourApp::Application.config.session_store :cookie_store, 
   {key: '_yourApp_session', domain: '.yourDomain.com'}