在ajax中提交multipart表单?

时间:2015-07-30 17:12:37

标签: javascript jquery html django

我有以下javascript。

$("ins.cdo").css( "content" );

我的html表单如下所示:

$("#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");
        }
    });
});

问题是我的formData返回并且空对象文字,我在提交时得到javascript异常说:

"未捕获的TypeError:非法调用"

请帮助。

2 个答案:

答案 0 :(得分:1)

试试这个:

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

以下是完整的sample代码。

答案 1 :(得分:0)

这可能会解决您的问题:

$("#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");
    }
});

});