gpt4 book ai didi

django - 如何在 axios POST 请求中附加 csrf header 和值

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

当用户使用提供的表格注册时,我需要发送 CSRF token 。

但是,由于注册/登录将是第一次与 django REST API 交互,所以我在加载网页时创建一个虚拟 GET 请求以从 django 检索 CSRF token 。

token 被检索并存储在 cookie 中。

enter image description here

但是,我仍然从 django 得到 Forbidden (CSRF cookie not set.)

这是我的 axios POST 请求。

import axios from 'axios'
axios.defaults.xsrfCookieName = 'vcubes'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'

let req = {
url: 'http://localhost:9000/vcubes/signup/',
method : 'POST',
headers: {
'Content-Type': 'text/plain'
},
data: data
}

注意:

当我将 withCredentials: true 添加到 axios POST 的 header 中时,浏览器发送 OPTIONS 请求而不是 POST。

最佳答案

  let csrftoken = Vue.$cookies.get('vcubes')

return axios.post('', data, {
headers: {
'X-CSRFToken': csrftoken
}
}).then(response => {
return response.data
})

这与 Shane 的回答非常相似,但展示了如何在 Vue 中获取 csrf token 。如果您的问题是获取 cookie,那么 this所以答案应该对你有帮助。

关于django - 如何在 axios POST 请求中附加 csrf header 和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46997888/

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