使用 AJAX POST 发送 PDF 文件到 ASP.NET API

sending PDF file using AJAX POST to ASP.NET API

我在使用 AJAX POST 将 jsPDF 创建的 PDF 文件发送到 .NET API 时遇到了很多问题。现在我可以使用 base64 但我宁愿不用,因为它会增加很多文件大小。 创建 PDF(jsPDF:doc.output)时,您得到的结果是 'string',就像第一张图片一样,此文件已正确创建,所以这不是问题所在:

下一步是发送数据,为此我使用 javascript FormData() 对象:

var data = new FormData();
data.append("json", jsonData); 
data.append("pdf", pdfData); //pdfData = doc.output()

还添加了一些 JSON 内容,因为我们还想通过 PDF 文件发送额外的数据。

下一步是 AJAX 方法:

$.ajax({ url: url, headers: header, data: data, method: 'POST', contentType: false, processData: false }).success(function (data, textStatus, jqXHR) { console.log("succes"); }).error(function (jqXHR, textStatus, errorThrown) { console.log("error"); });

现在将此发送到服务器时,我查看了网络选项卡,发现并非所有数据都已发送:

内容长度只有1918,在下图中你可以看到服务器是如何接收它的:

pdf 文件:

第json个对象:

JSON对象的内容字面意思是:[object][object] 虽然只发送了部分 pdf 文件,但只有前 99 行发送到服务器(见下图):

如果有人对此事有任何建议,那将是一个巨大的帮助,因为我已经尝试解决这个问题超过一天了(如果真的有必要,我将不得不回到 base64) .

谢谢

最后我使用 base64 完成了它,因为我们在这个问题上花费了很多时间。