Django CSRF cookie+ReactJS axios post请求

2024-10-01 13:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我已经被这个axios邮件请求困扰了好几天。我试图向restapi发送post请求,以便它可以在后端创建一个新的数据条目。在

在我使用axios以及XSRF令牌和CSRF令牌发送post请求之后,我总是得到“OPTIONS/endpointURL HTTP/1.1”200 0,而不是实际的post请求:

console

这是我的axios post请求代码

import axios from '../helpers/axios';

axios({
  method: "post",
  url: "http://endpointurl",
  withCredentials: true,
  headers: {
    'Content-Type': 'application/json',
    'X-CSRF-TOKEN': localStorage.getItem('xsrftoken'),
    'csrftoken': localStorage.getItem('csrftoken')
    // 'XSRF-TOKEN': localStorage.getItem('userToken')
  },
  data: {
    name: this.state.name,
  }
}).then(res => {
      console.log(res);
      console.log(res.data);
})

我也试着在post请求中发送了一个错误的令牌,我仍然会得到“OPTIONS…”

../helpers/axios

^{pr2}$

我就是这样得到这些代币的

// using jQuery
function getCookie(name) {
    var cookieValue = null;
    if (document.cookie && document.cookie !== '') {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) {
            var cookie = jQuery.trim(cookies[i]);
            // Does this cookie string begin with the name we want?
            if (cookie.substring(0, name.length + 1) === (name + '=')) {
                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                break;
            }
        }
    }
    return cookieValue;
}

var csrftoken = getCookie('csrftoken');
var xsrftoken = getCookie('XSRF-TOKEN');

localStorage.setItem('csrftoken', csrftoken);
localStorage.setItem('xsrftoken', xsrftoken);

谢谢你!!在


Tags: nametokencookievarrespostdocumentgetitem