javascript - Ajax 在同一请求中发送数组和图像

标签 javascript php jquery json ajax

我想要进行 ajax 调用,将 JSON 和文件数据发送到我的 PHP 后端。这是我当前的 ajax 调用:

    $.ajax({
    type: 'POST',
    dataType: 'json',
    data: jsonData,
    url: 'xxx.php',
    cache: false,
    success: function(data) { 
        //removed for example
    }
});

数据(jsonData)是一个 JSON 数组,它也保存来自文件选择的输入(我假设由于类型不匹配这是错误的)。我尝试使用 contentType: falseprocessData: false,但是当我尝试在 PHP 中访问 $_POST 数据时,那里什么也没有。我传递的数据不是来自表单,而且数据量很大,因此我不想使用 FormData 并将其附加到该对象。我希望我不必进行两次 ajax 调用来完成此任务。

最佳答案

如果您想将数据与任何文件一起发送,可以使用 FormData对象。

发送您的jsonData,如下所示:

var jsonData = new FormData(document.getElementById("yourFormID"));

与 PHP 相比,您可以检查数据和文件:

<?php
print_r($_POST); // will return all data
print_r($_FILES); // will return your file
?>

关于javascript - Ajax 在同一请求中发送数组和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793115/

相关文章:

javascript - 将十六进制字符串转换为十六进制类型

javascript - Bootstrap 弹出链接不起作用

javascript - 如何在google脚本中使用函数.getLastRow()

php - 这种类型的表达式 "Start Date: [Some Month] [dd], [yyyy]"的正则表达式是什么?

javascript - Jquery 验证仅部分工作

javascript - jQuery ajax 调用中的 "succes"和 "error"是什么?

javascript - 无法在 chrome 上滚动容器 div 元素(移动版)

php - 在另一个 block 内修改 Twig block

php - 简单的 xpath 查询但没有结果

jquery - CSS/jQuery : Fixed when scrolling horizontally but not vertically