作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户使用提供的表格注册时,我需要发送 CSRF token 。
但是,由于注册/登录将是第一次与 django REST API 交互,所以我在加载网页时创建一个虚拟 GET 请求以从 django 检索 CSRF token 。
token 被检索并存储在 cookie 中。
但是,我仍然从 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/
我是一名优秀的程序员,十分优秀!