一系列带有Django的表单帖子会导致403错误
如果用户点击提交登录页面上的表单,则会将它们带到另一个页面(第二页面),但如果用户尝试通过另一个表单发布登录第二页面,则用户会收到403禁止的错误。
着陆页形式工作。 登录表单工作正常。 但提交登录页面表单然后登录表单结果403 CSRF验证失败。
第一页上的表格返回:
render(request, 'page.html', context_var)
css的void形式如下所示:
<form action="{% url 'url_test' %}" method="POST">
<input type="hidden" name="some_name" value="for_view_use">
{% csrf_token %}
<button type="submit" name="other_name" value="value">button</button>
</form>
第二种形式或允许用户登录的视图返回:
HttpResponse('success')
和css的登录表单void是:
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">Sign In</button>
</form>
我确定这两个视图都会返回这些值,因为我已经分别测试了它们。
我曾尝试使用@csrf_protect
但没有奏效。 我已经检查过,加载后第二页上出现了令牌。 我知道这是与csrf令牌有关,但我无法弄清楚。
对我来说,看起来好像第一个表单没有为下一页返回可接受的csrf标记。
编辑:我没有解决问题本身,但我注意到第一个请求只是从服务器拉数据,所以我改变它为一个GET请求和错误停止发生。 这在我看来并不是一个答案,所以我会让这个线程打开,以防其他人在使用django的连续表单POST请求时遇到问题。
链接地址: http://www.djcxy.com/p/56547.html上一篇: a series of form posts with django results in 403 error