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,则需要使用 headers 设置:

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