【发布时间】:2020-11-08 08:34:14
【问题描述】:
我一直在尝试使用 Ajax 和 Django 加载多文件 HTML 输入,我知道 StackOverflow 中有很多与此问题相关的问题,但没有一种方法对我有用。我正在尝试使用单个网页。如果有任何建议,我将不胜感激:
HTML 代码:这段代码也是通过 ajax 的点击功能插入的,这就是为什么有很多 + 符号,所有内容都在引号内
+'<form id="reclamo" action="{% url "denuncia" %}" method="post" enctype="multiport/form-data">'
+'{% csrf_token %}'+'<label for="files">Adjuntos:</label>'+'<b> </b>'
+'<input type="file" id="files" name="files" multiple><br><br>'
+'<input type="submit" name="upload" value="Reportar">'
+"</form>"
而这个是Ajax代码:
$(document).on('submit','#reclamo',function(e) {
e.preventDefault();
var frm = new FormData($('#reclamo').get(0));
$.ajax({
url: "/denuncia/",
type: "POST",
data: frm,
cache:false,
proccessData: false,
contentType: false,
headers:{
'X-CSRFToken':'{{csrf_token}}'
},
success: function(result){
if (result == 'saved') {
alert('ha sido creada con exito')
}
}
});
})
我得到的错误是:
Uncaught TypeError: Illegal invocation
at e (jquery-3.1.1.min.js:4)
at xb (jquery-3.1.1.min.js:4)
at Function.r.param (jquery-3.1.1.min.js:4)
at Function.ajax (jquery-3.1.1.min.js:4)
at HTMLFormElement.<anonymous> ((index):226)
at HTMLDocument.dispatch (jquery-3.1.1.min.js:3)
at HTMLDocument.q.handle (jquery-3.1.1.min.js:3)
【问题讨论】:
-
我认为问题出在构造函数 formData 上。 var frm = new FormData();
标签: python-3.x django ajax