警告:无法验证 CSRF 令牌真实性轨道

问题描述

你应该做这个:

  1. 确保<%= csrf_Meta_tag %>您的布局中有

  2. 添加beforeSend到所有 ajax 请求以设置如下标头:


$.ajax({ url: 'YOUR URL HERE',
  type: 'POST',
  beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('Meta[name="csrf-token"]').attr('content'))},
  data: 'someData=' + someData,
  success: function(response) {
    $('#someDiv').html(response);
  }
});

要在所有请求中发送令牌,您可以使用:

$.ajaxSetup({
  headers: {
    'X-CSRF-Token': $('Meta[name="csrf-token"]').attr('content')
  }
});

解决方法

我正在使用 AJAX 将数据从视图发送到控制器并且出现此错误:

警告:无法验证 CSRF 令牌的真实性

我想我必须用数据发送这个令牌。

有谁知道我该怎么做?

编辑:我的解决方案

我通过将以下代码放入 AJAX 帖子中来做到这一点:

headers: {
  'X-Transaction': 'POST Example','X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},