JQuery1.8.0:通过AJAX从形式发送文件(JQuery1.8.0: Sending fil

2019-11-01 19:49发布

我开发使用CakePHP一开始还以为这个问题是蛋糕有关; 事实并非如此。 我已经重新编写的问题,使我获得了更多广泛适用答案

我有一个表格

  <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

Answer 1:

我想你不会停止的形式提交:

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

取而代之的click尝试submit

尝试改变这一点:

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

这一个:

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


Answer 2:

我只加入这个回答这个问题,可以标记为回答; 其实thaJeztah于洁的回答第三个评论回答了这个:这个问题,在这种情况下,而不是作为这里看到的Serialize()是我应该使用FORMDATA(已经): 怎么办文件上传使用jQuery的序列化



文章来源: JQuery1.8.0: Sending files from forms via AJAX