我正在使用 AJAX 将数据从视图发送到控制器并且出现此错误:
警告:无法验证 CSRF 令牌的真实性
我想我必须用数据发送这个令牌。
有谁知道我该怎么做?
编辑:我的解决方案
我通过将以下代码放入 AJAX 帖子中来做到这一点:
headers: { 'X-Transaction': 'POST Example', 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') },
你应该做这个:
确保<%= csrf_meta_tag %>您的布局中有
<%= csrf_meta_tag %>
添加beforeSend到所有 ajax 请求以设置如下标头:
beforeSend
$.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') } });