首页 > 解决方案 > 错误 403 CSRF cookie 未设置。axios 向 django 服务器发送请求

问题描述

我一直在尝试使用 axios 包在 react 中向我的 django 服务器发送一个简单的发布请求。但是每次,我都会收到一个后端错误,说 CSRF Coo​​kie not set。这是我的反应代码:

componentDidMount() {
    let csrfToken = getCsrfToken()
    console.log(csrfToken)
    axios({
        method: "POST",
        url: 'http://localhost:8000/getStats',
        headers: {
            "Content-Type": "application/json",
            "x-csrftoken": csrfToken
        },
        data: { "city": "pune" }
    }).then(response => {
        console.log(response);
    }).catch(err => {
        console.log(err);
    })
}

这是在我的 django 服务器中添加的:CSRF_COOKIE_NAME = "x-csrftoken"

编辑:我还没有使用任何形式。当我的组件安装时,我只是试图使用 axios 将静态数据作为 Pune 发送。

标签: djangoreactjsaxios

解决方案


将 csrftoken 添加到数据中,我在 ajax 和 Jquery 上遇到了同样的问题

  [...]
  method: "POST",
        url: 'http://localhost:8000/getStats',
        headers: {
            "Content-Type": "application/json",
        },
        data: { "city": "pune" ,
                "csrfmiddlewaretoken": csrfToken}
  [...]

推荐阅读