2016-10-28 10 views
0

こんにちは私はajaxでフォームを送信しようとしています。フォームにファイルがないときはうまくいきました。今私はファイルを追加して、その情報を追加する方法を知らない。 ファイルを追加する前に私のコードは次のようなものだった:私は、チュートリアルを見てきた、彼らはファイルを取得するFORMDATAオブジェクトを使用するように言うajaxでデータとファイルを含むフォームを提出する方法

var postData = form.serializeArray(); 
$.ajax({ 
      url : 'my/url', 
      type: "POST", 
      data : postData, 
      success:function(data, textStatus, jqXHR) 
      { 
       console.log('success'); 

      }, 
      error: function(jqXHR, textStatus, errorThrown) 
      { 
       console.log('Fail'); 
      } 
     }); 

。このような何か:

if (files.length) { 
     fileData = new FormData(); 
     $.each(files, function(key, value) 
     { 
      fileData.append(key, value); 
     }); 
    } 

ので、どのように私はpostData変数にそれを追加することができますし、それらを一緒に提出しますか?

編集:私はこれを行うことを試みた :

illegal invocation 

答えて

0

それがあるよりも、FormDataのコンストラクタにフォームを渡すことが容易である:

fileData = new FormData($('#form').serializeArray()); 
fileData = new FormData($('#form')); 

私はエラーを取得しますデータを反復してファイルに追加します。

$('#formId') 
    .submit(function(e) { 
    $.ajax({ 
     url : 'my/url', 
     type: 'POST', 
     data: new FormData(this), 
     processData: false, 
     contentType: false, 
     success:function(data, textStatus, jqXHR) 
     { 
      console.log('success'); 

     }, 
     error: function(jqXHR, textStatus, errorThrown) 
     { 
       console.log('Fail'); 
     } 
    }); 

    e.preventDefault(); 
}); 
関連する問題