我将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方法中,仍然是同样的错误。