jQuery / AJAX – 将附加数据与文件上载一起发送

我使用jQuery将文件上传到服务器:

$.ajax({ url : 'http://www.example.com', dataType : 'json', cache : false, contentType : false, processData : false, data : formData, // formData is $('#file').prop('files')[0]; type : 'post', success : function(response) {something} }); 

我想与文件一起发送其他参数。 可能吗? 如果是 – 如何?

谢谢!

要发送其他参数,您只需将其附加到formdata如下所示:

 var formdata=new FormData(); formdata.append('simpleFile', $('#file').get('files')[0]); //use get('files')[0] formdata.append('someotherparams',someothervalues);//you can append it to formdata with a proper parameter name $.ajax({ url : 'http://www.example.com', dataType : 'json', cache : false, contentType : false, processData : false, data : formData, //formdata will contain all the other details with a name given to parameters type : 'post', success : function(response) {something} }); 

试试这个,

 $( "form" ).on( "submit", function( event ) { var formData = $( this ).serialize(); //$.ajax({}) //remaining code here }); 

您必须使用FormData对象序列化表单,而不是仅发送文件。

 var formData = new FormData($("form")[0]);