【问题标题】:CSRF verification failed when input value changed by javascriptjavascript更改输入值时CSRF验证失败
【发布时间】:2012-10-08 15:30:21
【问题描述】:

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

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

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

我一直在通过在 Python 函数上方编写 @csrf_exempt 来“解决”这个问题。但是,这会跳过安全性。还有其他方法吗?

【问题讨论】:

    标签: django django-csrf


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-09
      • 1970-01-01
      • 2012-09-08
      • 2015-06-02
      • 1970-01-01
      • 2013-09-23
      相关资源
      最近更新 更多