Rails Can't verify CSRF token authenticity 看了社区之前同样问题依然没有解决.

bajiudongfeng · 发布于 2016年1月10日 · 最后由 bajiudongfeng 回复于 2016年1月11日 · 820 次阅读
14935

登陆使用的是devise做的 然后在前台使用$.ajax发送post请求,出现了这个警告. 尝试了如下方法:

1.在application.js中添加如下代码

$.ajaxSetup({
  beforeSend: function (xhr) {
    xhr.setRequestHeader('X-CSRF-Token',$('meta[name="csrf-token"]').attr('content'));
  }
}); 

2.试着将$('meta[name="csrf-token"]').attr('content')的值作为一个ajax的一个参数直接传过去. 都没有解决.

用firefox查看request headers里边也有X-CSRF-Token 然后看有的朋友说可能是传入的和服务器端的token不一样.那该咋看服务器端的token值呢. 这个到底是哪里的问题呢? 谢谢了.

共收到 6 条回复
De6df3

用 jquery_ujs 就好了,不需要自己搞这个事情的

https://github.com/rails/jquery-ujs

14935

@huacnlee jquery_ujs这个gem rails 不都是默认都集成了吗?一直都存在啊.

1

layout 里面有 csrf_meta_tags 吗?

14935

@rei 恩恩,这个东西有的.

1

预装的 jquery_ujs 已经处理了 csrf token,有问题应该是你添加或删除了不必要的东西。

14935

@rei 谢谢.我再仔细找找看.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册