【发布时间】:2013-05-21 15:35:42
【问题描述】:
下面的data:.. 行正确吗?我想将表单数据和 csrf 令牌发布到 Django 视图函数。
$('#file-upload').on('change', function () {
var currentpath = window.location.pathname;
var formData = new FormData($('form')[0]);
$.ajax({
url: currentpath, //server script to process data
type: 'POST',
data: {formData, 'csrfmiddlewaretoken': '{{ csrf_token }}'},
cache: false,
contentType: false,
processData: false
});
});
【问题讨论】:
-
我应该指出,
{{ csrf_token }}仅在此代码出现在模板正文中时才有效。如果它在导入的 JS 文件中。它不会工作。 -
也有解决方法。在模板文件中定义
<div id="csrf">{{ csrf_token }}</div>。在您导入的 JS 文件中,您可以将令牌作为formData.append('csrfmiddlewaretoken', '{{ csrf_token }}');添加到 FormData 对象