我正在使用 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:
<a href="javascript: void(0)" class="button-yellow">Add to Cart</a>
<%= hidden_field_tag form_authenticity_token %>
<script>
window._token = '<%= form_authenticity_token %>';
</script>
还有我的 javascript:
$.post('/cart/update?authenticity_token=' + encodeURIComponent(window._token), ...
请注意,我尝试使用encodeURIComponent
,但这似乎不起作用。但是,问题仍然存在,我觉得它是 Rails 而不是 javascript。如何将 Rails 令牌更改为不包含空格?gsub就像在 javascript中一样?
+