我正在尝试使用AJAX将文件上传到我的服务器。 AJAX调用工作正常,我的PHP返回正确,但当我添加contentType: false
和processData: false
时,它不再。
var formData = new FormData();
formData.append('image', input.files[0]);
$.ajax({
url: "php/API.php",
data: {action: "changeProfilePicture", profilePicture: formData},
type: "POST",
contentType: false, // if i remove this
processData: false, // and this, and my form data in `data:` then POST is not empty
success: function(resp) {
console.log(resp)
}
});
// inside of php/API.php
<?php
// post is empty
print_r($_POST);
if(isset($_POST) && !empty($_POST)) {
...
}
?>
答案 0 :(得分:1)
使用jQuery.ajax
发送multipart / formdata时,请求数据应该是FormData的一个实例。 e.g。
var formData = new FormData();
formData.append('image', input.files[0]);
formData.append('action', 'changeProfilePicture');
$.ajax({
url: "php/API.php",
data: formData,
type: "POST",
contentType: false,
processData: false,
...