首页 > 解决方案 > 如何在 Django 中构建包含文件的 HttpResponse 到 jquery 请求?

问题描述

我正在使用 $.post 方法向 django 服务器发出请求-

$.post('/merger/merge/',
                    JSON.stringify(mergeList),

                    function(data, status, jqXHR) {
                        console.log('inside');
                        var a = document.createElement('a');
                        a.href = window.URL.createObjectURL(data);
                        a.download = "merged-pdf.pdf";
                        a.style.display = "none";
                        document.body.appendChild(a);
                        a.click();
                        document.body.removeChild(a);
                        
                    },
                    'application/octet-stream'
            );

mergeList 是一个带有文件名的数组。

这是返回文件的代码-

viewresponse = HttpResponse(open("merged.pdf", "rb").read(), content_type = "application/octet-stream", status=200)
viewresponse['Content-Disposition'] = "attachment; filename=\"merged.pdf\""

return viewresponse

然而,这些方法因以下错误而失败 -

parsererror
No conversion from text to application/octet-stream

如何修复此错误?

标签: pythonjquerydjango

解决方案


推荐阅读