1

我在我的Django后端 (DRF) 上发送 axios.put 请求。我正在使用反应。GET 请求似乎运行良好。这是我的代码:

const options =  {headers: 
  {"X-CSRFToken": cookie.load('csrftoken')
}}

axios
.put(`/api/shippers/${values.id}/`,values, options)
.then(res => {
  console.log(res)
  return res
})
.catch(err => {
  console.log(err);
})

但是我在 cookie.load('csrftoken') 中得到的只是undefined。即使在我的浏览器 cookie 上设置了 csrftoken。

在此处输入图像描述

4

1 回答 1

1

我自己解开了这个谜。实际上,我无法使用 react cookie.load 函数从浏览器中读取 csrftoken cookie。因为,在我的 Django 后端CSRF_COOKIE_HTTPONLY设置为 True。根据文档,如果此值设置为 True,则无法使用 JavaScript 读取 csrftoken 值。解决方法是将此值设置为 False,现在 cookie.load 工作正常。

session_id 的情况与此类似,您必须将SESSION_COOKIE_HTTPONLY设置为 False。

于 2020-07-23T11:48:25.763 回答