$.ajax上传文件或数组

<script>
    $(document).ready(function(){
        $("#imageForm").on("submit", function(e){

            e.preventDefault(); // 阻止表单默认提交行为
            //var formData = $(this).serialize();
            var formData = new FormData(this);

            var image = $("input[name='image']").val();
            var name = $("input[name='name']").val();

            $.ajax({
                type: "post",
                async: false,
                url: "/image",
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                data: formData,
                contentType: false,  //不设置内容类型
                processData: false,  //不处理数据
                dataType: "json",
                success: function(result,status,xhr) {
                    console.log(result);
                },
                error: function(xhr,status,error) {
                    console.error('AJAX Error:', error);
                }
            })

        });
    });
</script>
$("#updateForm").on("submit", function(e){
    e.preventDefault();
    var formData = new FormData(this);

    var ids = formData.get('ids');
    var newIds = strToArr(ids);
    formData.delete('ids');
    newIds.forEach(id => {
        formData.append('ids[]', id);
    });

    // 遍历 FormData 对象并打印到控制台
    // for (let [key, value] of formData.entries()) {
    //     console.log(`${key}: ${value}`);
    // }

    $.ajax({
        type: "post",
        async: false,
        url: "/image",
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        data: formData,
        contentType: false,
        processData: false,
        dataType: "json",
        success: function(result,status,xhr) {
            if(result){

            }else{
                alert(result.message);
            }
        },
        error: function(xhr,status,error) {
            console.error('AJAX Error:', error);
        }
    })

});