我一直在为使用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 })
})