繁体   English   中英

如何将csrf_token添加到动态生成的表单?

[英]How to add a csrf_token to a dynamically generated form?

我有一个动态生成的表单,但由于Django在每个POST表单中都需要一个csrf_token ,所以我无法对其进行任何处理。

我的表格是通过以下方式生成的:

$("#results").append(
  '<form class="form-book-add" id="{0}" method="post" action="/books/add/">'
  // Django requires a CSRF token here. How do I add it via Javascript?
  + '<input type="hidden" id="book-asin" value="'+asin+'"/>'
  + '<input type="hidden" id="book-title" value="'+details['title']+'"/>'
  + '<input type="hidden" id="book-author" value="'+details['author']+'"/>'
  + '<input type="hidden" id="book-cover" value="'+details['cover']+'"/>'
  + '<input type="hidden" id="book-url" value="'+details['url']+'"/>'
  + '<input type="hidden" id="book-isbn" value="'+details['isbn']+'"/>'
  + '<input type="submit" id="btn-book-add" value="Add"/>'
  + '</form></div>'.format(i)
);

您有2个选项,首先排除视图的CSRF验证-最简单,最不安全的方法。

第二,将csrfmiddlewaretoken input设置为cookie csrftoken的值。

django docs有一个很好的类似示例(从该示例中,您只需要提取Cookie值的部分)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM