Javascript 在ajax中提交多部分表单?

Javascript 在ajax中提交多部分表单?,javascript,jquery,html,django,Javascript,Jquery,Html,Django,我有以下javascript $("#CsvForm").unbind('submit').on('submit',function( event ){ var formData = new FormData($(this[0])); $.ajax({ url: 'some url', data: formData, processData: false, contentType: false, ty

我有以下javascript

$("#CsvForm").unbind('submit').on('submit',function( event ){
    var formData = new FormData($(this[0]));
    $.ajax({
        url: 'some url',
        data: formData,
        processData: false,
        contentType: false,
        type: 'POST',
        success: function(json){
            console.log('ajax do something');
            ajax = true;
        },
        error: function(data) {
             console.log("failed");
        }
    });
});
我的html表单如下所示:

<form action="/teams/16/import_players" method="POST" id="CsvForm" enctype="multipart/form-data"><input type="hidden" name="csrfmiddlewaretoken" value="E2lRbOD6hRQixJBNfsDL3Wamo4VzVnDj">
    <div class="modal-body">
      <p><label for="id_csv_file">Upload CSV File:</label> <input class="form-control input-lg" id="id_csv_file" name="csv_file" placeholder="First Name *" required="true" type="file"></p>
    </div>
    <div class="modal-footer ">
      <button type="submit" class="btn btn-warning btn-lg" style="width: 100%;">
        Upload
      </button>
    </div>
</form>

上载CSV文件:

上传
问题在于,我的formData返回空对象文字,并且在提交时出现javascript异常,表示:

“未捕获类型错误:非法调用”

请帮忙。

试试这个:

var fileData = $("#id_csv_file").prop("files")[0];   
var formData = new FormData(); 
formData.append("file", fileData);               

这是完整的代码。

这可能会解决您的问题:

$("#CsvForm").unbind('submit').on('submit',function( event ){
var formData = new FormData();
formData.append("nameUsedOnServer",  document.getElementById("id_csv_file").files[0]);
$.ajax({
    url: 'some url',
    data: formData,
    processData: false,
    contentType: "multipart/form-data",
    type: 'POST',
    success: function(json){
        console.log('ajax do something');
        ajax = true;
    },
    error: function(data) {
         console.log("failed");
    }
});

}))

这可能会对你有所帮助。我仍然会得到相同的空对象和相同的错误。这是进程数据false formdata formdata{}。未捕获的TypeError:非法调用您读过示例代码吗?复制示例代码并重试。@user875139如果上述任何答案解决了您的问题,请将其标记为正确答案。