JQuery1.8.0:通过AJAX从表单发送文件

我用CakePHP开发并且最初认为这个问题与Cake有关; 事实并非如此。 我重写了这个问题,以便我得到更广泛适用的答案

我有一张表格

我写的提交函数看起来像:

 $( "#ajaxUploadSubmit" ).click(function() { $.ajax({ url:"uploads/add", data: $( "#UploadsAddForm" ).serialize() }).done(function(responseText) { alert(responseText); }) .fail(function() { alert('failxors'); }) }); 

但是这一行返回一个空数组: $this->request->data

我认为你没有停止提交表格:

 $( "#ajaxUploadSubmit" ).click(function(e) { e.preventDefault(); 

而不是click尝试submit

尝试改变这个:

 $( "#ajaxUploadSubmit" ).click(function() { 

到这一个:

 $(".form").submit(function(e) { e.preventDefault(); 

我只是添加了这个答案,所以这个问题可以标记为已回答; 实际上thaJeztah在Jai的回答的第3条评论中回答了这个问题:在这种情况下,我应该使用FormData()而不是Serialize(),如下所示: 如何使用jquery序列化进行文件上传