关于javascript:multipart / formdata不使用jQuery.ajax发送文件数据

multipart/formdata is not sending file data with jQuery.ajax

我有一个来自Django后端人员的端点,文档如下:

POST to /api/1/photo-uploads/ with enctype="multipart/form-data" with files in field called"files[]".

我一直在尝试使用jquery的ajax方法发送带有formdata的上传文件。我继续收到一个错误,表明文件没有发送。当我查看有效载荷时,我看到了。

1
2
3
4
undefined
------WebKitFormBoundary9AzM2HQPcyWLAgyR
Content-Disposition: form-data; name="file"; filename="auzLyrW.jpg"
Content-Type: image/jpeg

这并不意味着它没有发送,但肯定没有发布位置。我没有任何形式的文件上传验证。

1
2
3
4
5
6
7
8
9
10
    var formData = new FormData();
    formData.append('file', $('#file-upload').get(0).files[0]);
    $.ajax({
        url: '/api/1/photo-uploads/',
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
    });

当我console.log formData时,它只显示了像.append这样的原型方法。因此,我无法验证文件的数据是否在检查有效负载之后被发送。我可以登录$('#file-upload').get(0).files[0],但我只看到文件本身的详细信息。因为我在本地测试它,上传位置应该类似于localhost:8000/。

后台人员认为这是我在做的事情。当我做一个简单的表格贴,它工作得很好。我尝试了许多插件和基本方法,所有这些都产生了400 {"message":"No photos supplied.","success": false}

任何想法都会受到赞赏。


文件要求称之为files[]。发送的是file

formData.append('files[]', $('#file-upload').get(0).files[0]);