通过Ajax提交表单 - FormData始终为空

时间:2015-11-01 10:34:23

标签: javascript jquery html ajax html-form

我需要使用ajax在服务器上上传照片。我也设置了javascript的表单,但FormData对象总是空的!我已经尝试了各种方法来引用实际的表单,但仍然无法正常工作。

小提琴示例: https://jsfiddle.net/cjngvg8a/

谢谢!

HTML:

<form id="profileImageForm" action="update.php" method="post" enctype="multipart/form-data">
<input type="text" value="hello" name="test" />
<input type="file" name="profile_pic" id="image_upload"/>
<input type="submit" value="Save"/>
</form>

JS:

$('#profileImageForm').on('submit',(function(e) {
    e.preventDefault();     
    var formData = new FormData(this);

    console.log(formData);

    $.ajax({
        type:'POST',
        url: $(this).attr('action'),
        data:formData,
        cache:false,
        contentType: false,
        processData: false,
        success:function(data){
            console.log("success");
            console.log(data);
        }
    });
}));

1 个答案:

答案 0 :(得分:11)

使用console.log()检查FormData对象中的数据时,不会显示该数据。就在那里,你无法看到它。

如果您检查开发人员工具的“网络”标签,则可以看到正在上传表单内容。

Screenshot