使用jQuery ajax()时FormData为空

efp*_*ies 9 javascript ajax jquery file-upload

我尝试用文件提交表单jQuery.ajax.谷歌说我应该使用FormData哪个将自动编码文件和所有输入到我可以通过XHR发送的一个对象.

好吧,FormData对象是空的.它在调试器和服务器端都是空的.我找不到错误.这是代码.浏览器是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>
Run Code Online (Sandbox Code Playgroud)

在部分Network标签上的Firebug 中,Params我看到了这一行:

在此输入图像描述

[object FormData]: "undefined"?真的吗?

愚蠢的事情,我甚FormData至无法发送从头开始创建的对象.像这样

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

efp*_*ies 8

原来,我正在使用不支持的jQuery 1.8.1 FormData.库更新解决了这个问题.