2016-04-21 99 views
1
$('#add-article').submit(function() { 
    var formData = new FormData($(this)); 
    $.ajax({ 
     type: 'post', 
     url: '/add-article', 
     dataType: 'json', 
     data: formData, 
     //processData: false, 
     //contentType: false, 
     error: function(data) { 
      var errors = data.responseJSON; 
      $.each(errors, function(k, v) { 
       $('#' + k).addClass('has-error').append('<span class="help-block"><strong>' + v[0] + '</strong></span>'); 
      }); 
     }, 
     success: function(data) { 
      window.location.replace(data.url); 
     } 
    }); 

    return false; 
}); 

文件當我註釋掉porcessData: false,形式沒有得到提交,但通過標準表單提交不是阿賈克斯,並給了我一個錯誤Uncaught TypeError: Illegal invocation發送形式使用Ajax

如果我加入這兩條線,阿賈克斯將提交一個空表格。

我的形式:

<form role="form" method="POST" action="{{ route('post_add_article') }}" id="add-article" enctype="multipart/form-data"> 

         <input type="text" class="form-control" name="title"> 
         <textarea class="form-control" rows="16" name="body"></textarea> 

         <input type="file" name="files[]" multiple> 

        <button type="submit" class="btn btn-primary pull-right">Submit</button> 
      </form> 

回答

0

似乎與更換var formData = new FormData($(this));解決var formData = new FormData($(this)[0]);