利用formdata实现文件上传 可是为什么获取到的form是空的

html代码
<form id='add'>
    <input type="text" name='book'></input>
    <input type="file" name='source'></input>
    <input type="submit" value="提交"/>
</form>
jq代码
$('#add').submit(function(){
            
            var data = new FormData($('#add')[0]);  
            console.log(data);
            $.ajax({  
                url: "http://"+b[2]+'/'+b[3]+'/'+'page/member/importMembers',
                type: 'POST',  
                data: data,  
                cache: false,
                async: true,
                contentType: false,  
                processData: false,
                success:function(data){  
                    //alert(data);
                    alert("UploadFile Success");
                }   
            });  
            return false;   
        });

控制台显示的是这个错误
图片描述

后台的这块文件的字段这块显示的是
图片描述

阅读 12.4k
4 个回答

我这块主要是后台写的时候需要用到的html里面的input的name,所以我写的name需要和后台写的是一样的,才能获取到正确的数据
插一句题外话, 前端要是看不懂后台的代码,太吃亏了。。。。

文件上传要设置请求头吧

<form id='add' action="" method="post" enctype="multipart/form-data">
form中加上enctype,然后可以通过ajaxsubmit提交表单

$("#add").submit(function(e){
     e.preventDefault(); // 
     ...
     ...
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题