2015-11-01 121 views
2

我需要使用ajax在服務器上上傳照片。我也設置了JavaScript的形式,但FormData對象始終爲空!我嘗試過各種方式來引用實際的表單,但仍然無法正常工作。通過Ajax提交表單 - 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); 
     } 
    }); 
})); 

回答

6

在FORMDATA對象中的數據不被用console.log()檢查它顯露出來。它在那裏,你看不到它。

如果您檢查開發人員工具的Net標籤,則可以看到表單內容正在上傳。

Screenshot

+0

感謝偉大的答案,我從來沒有想過這一點。 –