upload jQuery ajax w/ extra data object


upload jQuery ajax w/ extra data object

使用这里的答案,我可以成功地将图像上传到php。

$(document).ready(function (e) {
$('#imageUploadForm').on('submit',(function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    $.ajax({
        type:'POST',
        url: $(this).attr('action'),
        data:formData, // << i would like to send more object variables
        cache:false,
        contentType: false,
        processData: false,
        success:function(data){
            console.log("success");
            console.log(data);
        },
        error: function(data){
            console.log("error");
            console.log(data);
        }
    });
}));
$("#ImageBrowse").on("change", function() {
    $("#imageUploadForm").submit();
});

});

问题:使用它,如何将额外的帖子数据对象发送到 php?
通常我可以发送像var dataObj = {a1:a1,a2:a2}这样的数据对象,这将替换上面的formData
但是由于formData占据了data条目,我似乎无法将更多$_POST对象附加到 PHP 中。

您可以使用

append()将更多数据附加到formData对象

$('#imageUploadForm').on('submit',(function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    formData.append('key', 'value');
    $.ajax({
        ...
    });
}));