Rails 3真品令牌:如何防止它使用空格?

我使用Rails 3和javascript来发出POST请求,因此我需要一个真实性令牌。 但是,令牌Rails创建包含空格的保持,我不能在我的javascript URL字符串中。 这就是我现在的日志中的样子:

Started POST "/cart/update?authenticity_token=fjJJQc2gKBenzzAAqdvhprJxH2tnhYkyuZ9F+l+GFns=" for 127.0.0.1 at 2013-05-23 11:55:42 -0400 Processing by CartController#update as HTML Parameters: {"gift_card_amount"=>"undefined", "case_quantity"=>"", "bottle_quantity"=>"", "product_history_id"=>"1052981", "authenticity_token"=>"fjJJQc2gKBenzzAAqdvhprJxH2tnhYkyuZ9F l GFns="} WARNING: Can't verify CSRF token authenticity 

这是我的HTML:

  Add to Cart   window._token = '';  

而我的javascript:

 $.post('/cart/update?authenticity_token=' + encodeURIComponent(window._token), ... 

注意我尝试使用encodeURIComponent ,但这似乎不起作用。 但是,问题仍然存在,我觉得它是Rails而不是javascript。 如何将Rails标记更改为不包含空格? GSUB for +喜欢它在javascript中?

看起来你应该在标题中发送csrf标记,而不是将其作为参数发送。 还要确保布局中包含<%= csrf_meta_tag %> 。 看看这个答案 。