在Django中使用Axios设置Django X-CSRFToken

时间:2019-07-18 05:10:46

标签: django reactjs axios django-csrf

我将Django + ReactJS用于最新的Web应用程序。 我为Django后端启用了csrf。 在这种情况下,我需要为POST请求设置headers [“ X-CSRFToken”] = csrfToken。

我当前使用的方式是 在Django模板中添加{% csrf_token %}标签,它将在每次axios调用之前添加一个带有value = csrfToken的隐藏输入,并添加:

let csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
axios.interceptors.request.use(function (config) {
    config.headers["X-CSRFToken"] = csrf;
    return config;
}, function (error) {
    return Promise.reject(error);
});

但是,我想将csrf标头设置为全局axios设置,因此可以避免在每次调用时都进行设置。 我可以知道该怎么做吗? 如果我在reactjs的基本index.js中设置它,它将返回我

  

未捕获的TypeError:无法读取null的属性“值”

因为csrf输入元素尚未呈现。

我还尝试将其放入React Component的componentDidMount方法中,仍然是同样的错误。

0 个答案:

没有答案