在我的Django模板中,我有一个POST表单。它包含标记{%csrf_token%}。如果我正常提交此表格,那么一切正常。但是,我需要通过Javascript / Jquery更改表单输入值:
$('input').val(id);
如果我这样做,那么当我提交表单时,我会收到“CSRF验证失败”错误消息。我通过Javascript提交表单,但只要我不动态更改任何值,这就不是问题。
我通过在我的Python函数上面编写@csrf_exempt来“解决”这个问题。但是,这会破坏安全性。还有另一种方式吗?
答案 0 :(得分:0)
命令$('input').val(id);
会覆盖可以找到的所有输入条目,因此隐藏的csrf_token
输入会丢失其值。尝试制作更具体的选择器。例如:
$('input[name=change-me]').val(id);