Django 模板:Csrf 令牌对于同一表单中的多个 post 请求无效
Django Template: Csrf token invalid for multiple post request in the same form
我正在做一个 Django 项目,遇到了一个涉及 csrf 令牌的问题。
我有一个用 javascript 函数处理提交的表单,因为在同一个表单中我需要执行 2 POST。
表格是这样的:
<form>
{% csrf_token %}
<input name="field_1" type="text">
....
....
<input name="file" type="file">
<button onclick="send_form()"> Send data </button>
</form>
send_form() 方法使用 axios 执行两个 post 请求。第一个发送文本字段,第二个发送文件。我需要这样做,因为服务器有两个不同的 api 用于管理文本数据和文件。
问题是第一个 post 成功,然后第二个失败,给出 403 错误,在 header 我可以看到错误
"CSRF Failed: CSRF token missing or incorrect."
有没有办法以单一形式做到这一点?我读到有人将 csrf 应用于整个 body 页面,但我不知道该怎么做。
感谢您的任何回答。
您收到该错误的原因是您没有指定您正在发出的请求类型。这需要在 <form>
标签
中完成
例如:<form action="call_view_function" method="post">
如果您要调用 views.py 函数,您应该在 <form>
标记中调用
而不是 onclick=
我正在做一个 Django 项目,遇到了一个涉及 csrf 令牌的问题。
我有一个用 javascript 函数处理提交的表单,因为在同一个表单中我需要执行 2 POST。 表格是这样的:
<form>
{% csrf_token %}
<input name="field_1" type="text">
....
....
<input name="file" type="file">
<button onclick="send_form()"> Send data </button>
</form>
send_form() 方法使用 axios 执行两个 post 请求。第一个发送文本字段,第二个发送文件。我需要这样做,因为服务器有两个不同的 api 用于管理文本数据和文件。
问题是第一个 post 成功,然后第二个失败,给出 403 错误,在 header 我可以看到错误
"CSRF Failed: CSRF token missing or incorrect."
有没有办法以单一形式做到这一点?我读到有人将 csrf 应用于整个 body 页面,但我不知道该怎么做。
感谢您的任何回答。
您收到该错误的原因是您没有指定您正在发出的请求类型。这需要在 <form>
标签
例如:<form action="call_view_function" method="post">
如果您要调用 views.py 函数,您应该在 <form>
标记中调用
而不是 onclick=