Rails Ajax无法验证CSRF令牌的真实性

在我的rails应用程序中,我在api的ajax帖子中收到“警告:无法验证CSRF令牌的真实性”

app/views/layouts/application.html.haml

!!!
%html
%头
=样式表\链接\标记“应用程序”,:媒体=>“全部”
=javascript_include_标记“应用程序”
=csrf_元标记
%身体
=产量

ajaxpost

$.ajax({url:'{card\u credits\u path}),
键入:“POST”,
beforeSend:function(xhr){xhr.setRequestHeader('X-CSRF-Token','#{form_authenticity_Token}'),
数据类型:“json”,
数据:{credit_uri:response.data.uri,
电子邮件:$(“#电子邮件:隐藏”).val(),
名称:$('.name').val()
},
成功:函数(随机对象){
window.location='/';
},
错误:函数(){
日志(“卡信息错误!”);
}
});

假设您已经使用RailsCSRF\u meta\u标记设置了CSRF令牌标记,那么请求的令牌将在CSRF令牌meta标记中可用:

<meta content=“u-n-i-q-u-e-t-o-k-e-n”name=“csrf令牌”/>

由于您使用的是jQuery,因此可以通过调用beforeSend键的以下值将令牌传递给AJAX请求:

函数(xhr){xhr.setRequestHeader('X-CSRF-Token',$('meta[name=“CSRF-Token”]”)attr('content'))

发表评论