如何通过ajax提交带有数据和文件的表单?
How can I submit a form with data and files by ajax
你好,我试图通过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
将表单传递给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();
});
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 在不同的文件中使用Javascript获取表单数据
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 用PHP发送html表单和文件附件
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- Firefox,如何提交表单触发文件下载,但停留在网页上
- 使用node-js上传文件,并将表单信息存储在数据库(mysql)中
- html5拖放文件-在提交整个表单时上传
- ajax上传文件表单
- html表单,它有文本和表,现在我想在一个简单的文本文件中保存和检索数据,如何实现它
- 通过javascript将文件从html表单发送到php
- 通过javascript获取pdf文件的表单数据
- 如果从文件输入按钮调用 .ajaxSubmit() 时,它是必需的表单
- 选择文件(表单提交)后无法单击“取消”按钮
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 在引导程序中从 HTML 表单执行 Python (CGI) 文件.带有Apache Server的JS
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 在用户编辑配置文件表单中使用ajax打开Facebox
- 使用JavaScript填写输入文件表单
- 通过jquery上传文件.表单插件