【问题标题】:Ajax form with both file and text inputs [duplicate]具有文件和文本输入的 Ajax 表单[重复]
【发布时间】:2012-06-20 16:06:08
【问题描述】:

我正在尝试创建一个发送文件和文本输入的 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 对象:

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

$.ajax({
    url: 'upload.php',
    type: 'POST',
    dataType: 'html',
    data: formData,
    processData: false,
    contentType: false
});

然后我在'upload.php'中什么也得不到

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

谢谢!

【问题讨论】:

    标签: ajax upload form-data


    【解决方案1】:

    经过大量搜索后找到了这个答案 (Previous Answer),并且在我的应用程序中运行良好:

    $("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 调用,dataType: 'html' 可能会导致错误。

    【讨论】:

    • 请注意,在非 HTML 5 浏览器(即 IE
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多