这是我的问题
我有一个 Rails 3.1 应用程序,我正在尝试发出 ajax 请求,但收到警告消息“警告:无法验证 CSRF token 真实性”...
在我的布局中,我有辅助方法“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),并且我需要在 application.js 顶部添加 jquery 和 jquery-ujs。
即使如此,该消息仍然出现。我是不是忘记了什么?
感谢您的帮助。
最佳答案
我也遇到了同样的麻烦。我试图捕获一个 javascript 事件(you_tube 播放器已完成)并 Ajax 返回到我的服务器来让我知道。我得到:
WARNING: Can't verify CSRF token authenticity
whenever the jQuery ajax call hit my server. I added your code fix above
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token',
$('meta[name="csrf-token"]').attr('content'));
}
});
而且效果很好。我认为唯一的区别在于我的布局
<%= csrf_meta_tags %>
而不是您在原始帖子中提到的 csrf_method_tag。
所以感谢您的修复,它在原始帖子中。
关于jquery - Rails 3.1 - CSRF 被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270947/