gpt4 book ai didi

jquery - Rails Ajax 无法验证 CSRF token 的真实性

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:25 27 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我在发送到 api 的 ajax 帖子中收到“警告:无法验证 CSRF token 真实性”。

app/views/layouts/application.html.haml:

!!!
%html
%head
= stylesheet_link_tag "application", :media => "all"
= javascript_include_tag "application"
= csrf_meta_tags
%body
= yield

ajax post:

$.ajax({ url: '#{card_credits_path}',
type: 'POST',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', '#{form_authenticity_token}')},
dataType: "json",
data: { credit_uri: response.data.uri,
email: $('#email:hidden').val(),
name: $('.name').val()
},
success: function(randomobject) {
window.location = '/';
},
error: function(){
console.log("Card information is wrong!");
}
});

最佳答案

假设您已经使用 Rails csrf_meta_tag 标签设置了 CSRF token ,请求的 token 将在 csrf-token 元标签中可用:

<meta content="u-n-i-q-u-e-t-o-k-e-n" name="csrf-token" />

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

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

关于jquery - Rails Ajax 无法验证 CSRF token 的真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com