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

时间:2013-03-19 17:52:01

标签: jquery ajax forms cakephp cakephp-2.3

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

我有一张表格

  <form action"">
      <fieldset> 
      <!---- bunch of fields----->
      <input type="file" name="data[Upload][file]" id="UploadFile">
      <button id="ajaxUploadSubmit"> Submit </button>
      </fieldset>
  </form>

我写的提交函数如下:

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

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

2 个答案:

答案 0 :(得分:0)

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

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

而不是click尝试submit

尝试改变这一点:

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

到这一个:

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

答案 1 :(得分:0)

我只是添加了这个答案,所以这个问题可以标记为已回答;实际上thaJeztah在Jai的回答的第3条评论中回答了这个问题:在这种情况下,问题是我应该使用FormData()而不是Serialize(),如下所示: how to do file upload using jquery serialization