FormData est vide lors de l'utilisation de jQuery ajax()

J'essaie d'envoyer le formulaire avec le fichier avec jQuery.ajax. Google dit que je devrais utiliser FormData qui sera automatiquement encode le fichier et tous les intrants de la un objet qui je peux envoyer via XHR.

Bien, le FormData objet est vide. Elle est vide dans le débogueur et sur le côté serveur. Je ne trouve pas l'erreur. Voici le code. Le navigateur est Firefox 27.

<form method="post" action="" enctype="multipart/form-data" id="generate_params">
    <input type="hidden" name="id" value="1">
    <input type="hidden" name="action" value="AJAX_BANNERS_GENERATE">
</form>

<div>
    <p>
        <label>
            Image: <input type="file" name="bg_image[]" form="generate_params" required>
        </label>
    </p>
</div>

<input type="submit" form="generate_params">

<script>
    $(document).ready(function () {
        $("#generate_params").submit(function (e) {
            var data = new FormData(this);

            $.ajax({
                data: data,
                method: "POST",
                success: function (url) {
                    alert("ok");
                },
                cache: false,
                contentType: false,
                processData: false
            });

            e.preventDefault();
            return false;
        });
    });
</script>

Dans Firebug sur la Network dans l'onglet Params l'article, je vois la ligne:

FormData est vide lors de l'utilisation de jQuery ajax()

[object FormData]: "undefined"? Sérieusement?

La chose stupide que je ne peux même pas envoyer FormData objet créé à partir de zéro. Comme ce

var data = new FormData();
data.append("test", {value: 0}); //still empty

OriginalL'auteur efpies | 2014-03-17