我在前端使用 Backbone,在后端使用 Ruby on Rails。我设计了 gem,用于我的身份验证。几天前,前端团队完成了他们的部分工作,现在我需要将它们绑定在一起。因此,我尝试使用 json 槽骨干(标准方式)通过 request 发送数据,即使我放入自定义会话控制器,我也会Started POST "/users/sign_in.json"
收到错误消息。像这样:Completed 401 Unauthorized in 180ms
protect_from_forgery except: :create
class UserSessions::SessionsController < Devise::SessionsController
protect_from_forgery except: :create
......
end
如何省略这个,或者我必须在哪里生成我的<%= csrf_meta_tags %>
,以便我可以使用我在网上找到的这种方法:
App.csrfToken = $("meta[name='csrf-token']").attr('content');
Backbone.sync = (function(original) {
return function(method, model, options) {
options.beforeSend = function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', App.csrfToken);
};
original(method, model, options);
};
})(Backbone.sync);
我无法将其移回标准 Rails 资产管道,因为前端是与我的后端分开编写的,后端依赖于 require.js。