【问题标题】:fetch api and csrf token rails backend获取 api 和 csrf 令牌 rails 后端
【发布时间】:2018-01-19 17:17:02
【问题描述】:

我有一个带有设计身份验证的 Rails 后端。

我正在尝试使用 fetch api,但失败并显示错误消息

can't verify CSRF token

这是获取代码,我实在找不到其他角落来查找问题,您能帮忙吗?

body = JSON.stringify({
  email:'xya@gmail.com', 
  password: 'abcdef', 
})
headers= {
        'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'X-Requested-With': 'XMLHttpRequest'
      }
method = 'post'


fetch('/users/sign_in',{method,body, headers, credentials: 'same-origin' })

谢谢!

【问题讨论】:

  • 我会为 JSON 请求禁用 CSRF。

标签: ruby-on-rails devise fetch fetch-api


【解决方案1】:

我认为fetch 函数中的参数是错误的。它应该是这样的: fetch('/users/sign_in',{ method: method, body: body, headers: headers, credentials: 'same-origin' })

【讨论】:

  • 不是 100% 确定,但我认为这很好,因为 ES6 的对象解构 wesbos.com/destructuring-objects
  • 我 2 年前的回答不相关。更好的解决方案是在这种情况下不使用fetch,如果您启用了rails_ujs,请使用Rails.ajax
猜你喜欢
  • 2019-06-13
  • 2021-10-17
  • 2019-10-27
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 2021-08-30
  • 2016-02-08
  • 1970-01-01
相关资源
最近更新 更多