我在 javascript 中动态创建了表单元素:
var selectform = document.createElement("form")
我已将其他输入元素和这些属性添加到 selectform:
submitnselection.setAttribute('type',"submit");
submitnselection.setAttribute('value',"Submit");
submitnselection.setAttribute("name","submitnpage");
selectform.setAttribute("method", "post")
selectform.setAttribute = ("action", "/test")
"{% csrf_token %}";
在 HTML 中,添加 {% csrf_token %}
模板标签会起作用,但在这种情况下,javascript 我得到了 403 禁止错误:
CSRF token missing or incorrect.
我找到了一些解决方案,但对我来说没有任何效果,是否有任何方法可以仅使用 Django、Javascript 和纯 Jquery 将 {% csrf_token %}
添加到表单中?另请注意,此脚本位于 html 中,因此我认为 {% csrf_token %}
模板标签将起作用。
最佳答案
这应该有效:
var inputElem = document.createElement('input');
inputElem.type = 'hidden';
inputElem.name = 'csrfmiddlewaretoken';
inputElem.value = '{{ csrf_token }}';
selectform.appendChild(inputElem);
你看,csrf_token
只不过是一个字符串,它是表单的隐藏
输入元素的值
。就这样!
关于javascript - 如何正确地将 django csrf_token 附加到内联 javascript 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42733761/