Javascript 调整jQuery函数以发送文件

Javascript 调整jQuery函数以发送文件,javascript,jquery,django,Javascript,Jquery,Django,我们网站上的一个功能为我们的所有表单启动。它使用jquery的serializearray方法,效果非常好 我需要添加一个带有文件输入的表单,而serializearray不处理文件。我对Python和Django并不陌生,但我对Jquery是新手。我很难适应这个功能 由于formData类处理文件,我认为可以将“data:serializedform”更改为“data:new formData(form)” 当我这样做时,Chrome的控制台显示“UncaughtTypeError:非法调用”

我们网站上的一个功能为我们的所有表单启动。它使用jquery的serializearray方法,效果非常好

我需要添加一个带有文件输入的表单,而serializearray不处理文件。我对Python和Django并不陌生,但我对Jquery是新手。我很难适应这个功能

由于formData类处理文件,我认为可以将“data:serializedform”更改为“data:new formData(form)”

当我这样做时,Chrome的控制台显示“UncaughtTypeError:非法调用”。Firefox的控制台显示“UncaughtTypeError:‘append’在未实现接口FormData的对象上被调用。”

是否需要将FormData对象转换为其他类型

下面是一个片段:

uploadfile.html:

function postAndLoad(form, url, panelDivID, btnName){
    var serializedForm = $(form).serializeArray(); 
    return request = $.ajax({
        url: url,
        dataType : 'html',
        cache: 'false',
        type : 'POST',
        data: serializedForm,  //data: new FormData(form) produces an error.
        success: function (data) {
            console.log("Completed POST");
        error: function(data) {
            console.log('There was a problem in postAndLoad()');
            console.log(data);
        }
    });
    return false;
    };
…
<form enctype="multipart/form-data" onsubmit="postAndLoad(this, '{% url 'UploadFile' %}', 'panel_upload'); return false;" method='post'>
    {% csrf_token %}
    {{ form | crispy}}
    <div class="row w-100">
        <input class="btn" type='submit' name="form1btn" value="button" />
    </div>
    </form>

请参阅-您可能只需要将
contentType
processData
设置为
false
。谢谢。对不起,重复的问题。我将提高我的搜索技能。:)
class UploadFile(forms.Form):
    uploadFile = forms.FileField(label="Select file to upload")
    sampleText = forms.CharField(label="Enter some text")