2

MinifiedJS と $.request を使用して AJAX ファイルをアップロードしようとしています。

入力ファイルを含むHTMLファイルがあります。

<input type="file" id="fileAvatar" />

そして、私のJavascriptコードは次のようになります。

$('#fileAvatar').on('change', uploadAvatar);

function uploadAvatar(event) {
  var fData = new FormData();
  // Add files
  _.each(event.target.files, function(file, key) {
    fData.append(key, file);
  });
  // Add ohter parameters
  fData.append('user', 267345);

  // POST formData
  $.request(
    'post', 
    '/ajax/upload_avatar.php', 
    fData, 
    {'Content-Type': 'multipart/form-data'}
  ).then(function(response){
    console.log(response);
  });
}

Chrome 開発ツールで /ajax/upload_avatar.php への POST を確認できますが、PHP でパラメーターを取得できません。フォーム データ オブジェクトが送信されていないようです。

何かご意見は?

4

1 に答える 1

0

request() の 4 番目の引数は、ヘッダーのリストではなく、設定オブジェクトです。Content-Type を指定する場合は、ヘッダー設定を使用する必要があります。

$.request(
    'post', 
    '/ajax/upload_avatar.php', 
    fData, 
    {headers: {'Content-Type': 'multipart/form-data'}}
  )
于 2014-10-07T21:09:57.027 に答える