【发布时间】:2011-11-08 09:57:18
【问题描述】:
这是我的问题,
我有一个 rails 3.1 应用程序,我正在尝试发出 ajax 请求,但我收到警告消息 “警告:无法验证 CSRF 令牌真实性”...
在我的布局中,我有辅助方法 "csrf_method_tag",我添加了以下 javascript 代码(不知道是否真的需要):
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
}
});
我的 Gemfile 包含 gem jquery-rails (>= 1.0.12),我需要 jquery 和 jquery-ujs 在我的 application.js 的顶部。
即使这样,消息仍然出现。我是不是忘记了什么?
感谢您的帮助。
【问题讨论】:
-
有同样的问题 - 登录后,如果我更改页面(使用 devise 和 rpx 可连接 gem),我会注销。如果您解决了这个问题,请告诉我们
-
在 AJAX 请求的标头中发送的 cookie 是否与在加载发出请求的页面的请求上发送的 cookie 相同? CSRF 令牌与当前会话在交响乐中进行验证,该会话在另一个标头中维护(应该自动发送,但在您的情况下可能不是)。
标签: jquery ruby-on-rails-3.1 csrf