具有文件和文本输入的Ajax表单

具有文件和文本输入的Ajax表单,ajax,upload,form-data,Ajax,Upload,Form Data,我正在尝试创建一个ajax上传表单,它同时发送一个文件和一个文本输入。 我已使用以下代码成功发送该文件: var $form = $('#form'); var formData = new FormData(); formData.append('file', $('#file')[0].files[0]); $.ajax({ url: 'upload.php', type: 'POST', dataType: 'html', data: formData,

我正在尝试创建一个ajax上传表单,它同时发送一个文件和一个文本输入。 我已使用以下代码成功发送该文件:

var $form = $('#form');
var formData = new FormData();

formData.append('file', $('#file')[0].files[0]);

$.ajax({
    url: 'upload.php',
    type: 'POST',
    dataType: 'html',
    data: formData,
    processData: false,
    contentType: false
});
但是,我还需要发送文本输入,因此我尝试将整个表单传递给FormData对象:

但是我在“upload.php”中什么也没有得到

如何将文本和文件输入一起发送

谢谢

经过大量搜索后找到了这个答案,在我的应用程序中效果很好:

$("form#data").submit(function(){

var fd = new fd($(this)[0]);

var request = jQuery.ajax({
  url: gurl,
  type: 'POST',
  cache: false,
  contentType: false,
  processData: false,
  data: fd
  });
我还要检查您的AJAX调用,数据类型:“html”可能会导致错误。

经过多次搜索后找到了这个答案,在我的应用程序中效果非常好:

$("form#data").submit(function(){

var fd = new fd($(this)[0]);

var request = jQuery.ajax({
  url: gurl,
  type: 'POST',
  cache: false,
  contentType: false,
  processData: false,
  data: fd
  });

我还要检查您的AJAX调用,数据类型:“html”可能会导致错误。

请注意,在非html 5浏览器中,即IE<10的版本中,此解决方案将不起作用,因为FormData是HTML5对象,在IE 8或9中不存在。请注意,在非html 5浏览器中,即IE<10的版本中,此解决方案将不起作用,因为FormData是HTML5对象,不存在于IE8或9中。