PHP没有从ajax接收formData对象

xdl*_*xdl 3 javascript php ajax jquery

我正在测试将一个formData对象发送到PHP(我正在关注http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/),但是我遇到了一些困难.地面.首先,创建formData对象并填充:

var formdata = new FormData();
formdata.append('my_key','my_value');
Run Code Online (Sandbox Code Playgroud)

然后我用jQuery调用ajax是:

  $.ajax({
     url: 'php_upload.php',
     type: 'POST',
     cache: false,
     data: formdata,
     processData: false,
     contentType: false,
     success: function (response) {
     console.log(response);
  }
  }); 
Run Code Online (Sandbox Code Playgroud)

使用php_upload.php文件包含:

<?php
    echo $_FILES['my_key']['name'];
?>
Run Code Online (Sandbox Code Playgroud)

但我得到一个未定义的索引:控制台中的my_key错误.

任何人都知道我可能做错了什么?多年来一直在挠头.

Mus*_*usa 8

您尚未向FormData添加任何文件,只是可以访问的字符串$_POST['my_key'].

要传递文件,FormData.append的第二个参数必须是a FILE或a BLOB.