您好我正在尝试通过ajax提交表单。当我没有表单中的文件时,它工作正常。现在我添加了文件,我不知道如何添加该信息。 添加文件之前的代码是这样的:
var postData = form.serializeArray();
$.ajax({
url : 'my/url',
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
console.log('success');
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log('Fail');
}
});
我一直在寻找教程,他们说要使用formData对象来获取文件。像这样:
if (files.length) {
fileData = new FormData();
$.each(files, function(key, value)
{
fileData.append(key, value);
});
}
那么如何将其附加到postData
变量并将它们一起提交?
编辑: 我试过这样做:
fileData = new FormData($('#form').serializeArray());
fileData = new FormData($('#form'));
我收到错误:
illegal invocation
答案 0 :(得分:0)
将表单传递给FormData
的构造函数比将迭代文件添加到数据更容易。
$( '#formId' )
.submit( function( e ) {
$.ajax( {
url : 'my/url',
type: 'POST',
data: new FormData( this ),
processData: false,
contentType: false,
success:function(data, textStatus, jqXHR)
{
console.log('success');
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log('Fail');
}
});
e.preventDefault();
});