jQuery-FormData发送一个空图像

jQuery-FormData发送一个空图像,jquery,ajax,Jquery,Ajax,当我使用jquery提交表单时,奇怪的事情发生了。即使我没有在表单中选取任何图像,$\u FILES数组包含一个空值。如果我选择图像,则有一个额外的空值 以前有人见过这个吗 Array ( [item_image] => Array ( [name] => Array ( [0] => ) [type

当我使用jquery提交表单时,奇怪的事情发生了。即使我没有在表单中选取任何图像,
$\u FILES
数组包含一个空值。如果我选择图像,则有一个额外的空值

以前有人见过这个吗

Array
(
    [item_image] => Array
        (
            [name] => Array
                (
                    [0] => 
                )

            [type] => Array
                (
                    [0] => 
                )

            [tmp_name] => Array
                (
                    [0] => 
                )

            [error] => Array
                (
                    [0] => 4
                )

            [size] => Array
                (
                    [0] => 0
                )

        )

)
阿贾克斯


请尝试以下示例:

Html/PHP

<?
    print_r($_POST);
    print_r($_FILES);
?>

<form id="data" method="post" enctype="multipart/form-data">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <input name="image" type="file" />
    <button>Submit</button>
</form>

祝你好运

日志中有错误吗?[错误]=>数组([0]=>4,看起来你有错误,上面写着UPLOAD\u ERR\u NO\u FILE Value:4;没有上传任何文件。我看到了…但这是什么?我不知道如何检查它。我不知道控制台或php错误日志中没有任何错误,我想这与这里无关。我没有上传任何文件。我不明白。即使我没有上传任何文件,也需要一个文件要上传吗?这很有效。我只更改了
var formData=new formData($(this)[0]);
谢谢!
<?
    print_r($_POST);
    print_r($_FILES);
?>

<form id="data" method="post" enctype="multipart/form-data">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <input name="image" type="file" />
    <button>Submit</button>
</form>
$("form#data").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});