gpt4 book ai didi

ruby-on-rails - 无法验证 CSRF token 的真实性 Rails/React

转载 作者:行者123 更新时间:2023-12-04 07:30:04 24 4
gpt4 key购买 nike

我的 rails 应用程序中有一个 react 组件,我试图在其中使用 fetch()将 POST 发送到我托管在本地主机上的 Rails 应用程序,这给了我错误:

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

我正在使用设计 gem 来处理 user/registrationslogins .

我试图删除 protect_from_forgery with: :exception
这是我的提取代码,
this.state.ids.sub_id});
fetch(POST_PATH, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: body
}).then(res => res.json()).then(console.log);

如何获取 csrf token 并通过表单发送它以使其通过?
理想情况下,我只想通过 header 发送它,但我不知道如何访问 token 。

最佳答案

如果您只是在 Rails View 中嵌入 react 组件,最简单的方法是从 Rails View 中检索 csrf token ,然后将其作为 header 传递到 fetch api 调用中。

您可以通过执行以下操作来获取 csrf token :

const csrf = document.querySelector("meta[name='csrf-token']").getAttribute("content");

然后您只需将其作为 fetch 调用中的 header 传递:
...
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': csrf
},
...

我通常不使用 fetch,所以不太确定确切的语法,但这应该有助于指导你。

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

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