【发布时间】:2019-09-15 18:20:03
【问题描述】:
我正在尝试创建将 zip 文件上传到服务器的表单。但是每次我点击提交时,我都会收到CSRF verification failed 错误。这是我的html代码:
<form method="POST" name="form-import-file" enctype="multipart/form-data">
<div>
<input type="file" id="file" name="file" accept=".zip"/>
<input type="submit" value="Upload file">
</div>
</form>
<div class="url-csrf" data-csrf="{{ csrf_token }}"></div>
<div class="url-import-file" data-url-import-file="{% url 'intent:import_file' %}"></div>
在我的 .js 代码中:
$("form[name='form-import-file']").submit(function(e) {
var formData = new FormData($(this)[0]);
alert(formData);
var json_data = {'csrfmiddlewaretoken' : $('.url-csrf').attr('data-csrf'), 'file': formData };
$.ajax({
url: $('.url-import-file').attr('data-url-import-file'),
type: "POST",
data: json_data,
success: function (msg) {
alert(msg)
},
cache: false,
contentType: false,
processData: false
});
e.preventDefault();
});
【问题讨论】:
-
您是否尝试像这样添加
{{ csrf_token }}<form method="POST" name="form-import-file" enctype="multipart/form-data">{{ csrf_token }}而不是在您的表单之外。 -
是的,但我不断收到同样的错误。禁止。
标签: ajax django django-csrf