PHP 没有从 ajax 接收 formData 对象

标签 php javascript jquery ajax

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

var formdata = new FormData();
formdata.append('my_key','my_value');

然后我使用 jQuery 的 ajax 调用是:

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

php_upload.php 文件包含:

<?php
    echo $_FILES['my_key']['name'];
?>

但我在控制台中收到一个 undefined index: my_key 错误。

有人知道我可能做错了什么吗?多年来一直摸不着头脑。

最佳答案

您还没有向 FormData 添加任何文件,只是一个可以通过 $_POST['my_key'] 访问的字符串。

要传递文件,FormData.append 的第二个参数必须是 FILEBLOB .

关于PHP 没有从 ajax 接收 formData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187533/

相关文章:

jquery - 异步和文档就绪

javascript - 突出显示唯一的用户名

javascript - Laravel动态表单输入文本并上传文件

javascript - 当部分或全部复选框未选中时显示消息

javascript - 在 AngularJS Controller 中获取带有 moment-timezone 的时区名称列表

javascript - 在 JavaScript 中调用时创建新的 'class' 实例

jquery - jQuery UI 插件 Tag-it 中每个标签允许的最大字符数

php - PHP 中的正则表达式命名捕获组

javascript - 为什么我的 json_encode 没有在 PHP 中给出正确的值

javascript - 使用表单提交更新数据库中选定的下拉值