javascript - 内容类型 : false and processData: false make POST empty in PHP

标签 javascript php ajax post

我正在尝试使用 AJAX 将文件上传到我的服务器。 AJAX 调用工作正常,我的 PHP 正确返回,但是当我添加 contentType: falseprocessData: 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)) {
        ...
    }
?>

最佳答案

当使用jQuery.ajax发送multipart/formdata时,请求数据应该是FormData的实例。 例如

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,
    ...

关于javascript - 内容类型 : false and processData: false make POST empty in PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680387/

相关文章:

javascript - php 中的 Json_encode 并在 jquery 中检索它

javascript - Kendo UI 堆叠条形图自定义工具提示

javascript - 如何根据访客推荐使用 Javascript(或 PHP)将值插入到表单中

javascript - 使用变量在 React Native 中渲染 Unicode 字符

javascript - 如何使用 lodash 合并两个数组并对重复对象的值求和

php - 显示字符串反序列化 wordpress

jquery - jqgrid - ajax 文件上传后刷新网格

php - 通过Wordpress错误日志多次出现相同的错误消息

php - Instagram 故事刮板 PHP

ajax - Spring MVC AJAX/JSON -> json.min.js - 我在哪里可以获得更新的版本?