【发布时间】:2017-08-12 08:19:57
【问题描述】:
我一直在为使用 Rails 构建的 Web 应用程序开发移动设备补充。使用 Fetch API,我不断收到“无法验证 CSRF 令牌真实性”的通知。
export const login = (user) => {
fetch('http://localhost:3000/api/session', {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({user})
})
// promise handling
}
编辑:设法让它工作,但我仍然不明白为什么。如果有人有同样的问题,我就是这样解决的。我设法从我的 rails 应用程序中获取 form_authenticity_token 并将其保存为一个变量,然后我将其传递给函数。尚未测试删除凭据密钥。
export const login = (user, token) => {
return fetch('http://localhost:3000/api/session', {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({ user, authenticity_token: token })
})
【问题讨论】:
-
您是否必须在会话控制器中进行任何更改才能使其正常工作?我遇到了类似的问题,但这个修复对我不起作用。
标签: javascript ruby-on-rails react-native fetch csrf