JQuery:将FormData和csrf标记一起发布

Phi*_*007 6 django ajax jquery

data:..下面的行是否正确?我想将表单数据AND csrf标记发布到Django视图函数.

$('#file-upload').on('change', function () {
    var currentpath = window.location.pathname;
    var formData = new FormData($('form')[0]);
    $.ajax({
            url: currentpath,  //server script to process data
            type: 'POST',
            data: {formData, 'csrfmiddlewaretoken': '{{ csrf_token }}'},
            cache: false,
            contentType: false,
            processData: false
        });
});
Run Code Online (Sandbox Code Playgroud)

Mus*_*usa 14

您必须将您的参数添加到FormData对象(使用append),并始终将formdata对象单独作为data属性传递.

$('#id_image').on('change', function () {
    var currentpath = window.location.pathname;
    var formData = new FormData($('form')[0]);
    formData.append('csrfmiddlewaretoken', '{{ csrf_token }}');
    $.ajax({
            url: currentpath,  //server script to process data
            type: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false
        });
});
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用。由于缺少令牌,我仍然收到403。如果我注释掉“ processData:false”,那么我将在未实现接口FormData的对象上调用“ TypeError:'append”。 (2认同)