当输入值由javascript更改时,CSRF验证失败

时间:2012-10-08 15:30:22

标签: django django-csrf

在我的Django模板中,我有一个POST表单。它包含标记{%csrf_token%}。如果我正常提交此表格,那么一切正常。但是,我需要通过Javascript / Jquery更改表单输入值:

$('input').val(id);

如果我这样做,那么当我提交表单时,我会收到“CSRF验证失败”错误消息。我通过Javascript提交表单,但只要我不动态更改任何值,这就不是问题。

我通过在我的Python函数上面编写@csrf_exempt来“解决”这个问题。但是,这会破坏安全性。还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

命令$('input').val(id);会覆盖可以找到的所有输入条目,因此隐藏的csrf_token输入会丢失其值。尝试制作更具体的选择器。例如:

$('input[name=change-me]').val(id);