上传 jQuery ajax 带额外数据对象

upload jQuery ajax w/ extra data object

使用答案from here我可以成功上传图片到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();
});

});

问题: 使用这个,我如何发送额外的 post 数据对象到 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({
        ...
    });
}));