2017-06-01 68 views
0

我在使用AJAX POST将jsPDF创建的PDF文件发送到.NET API时遇到了很多问题。现在我可以使用base64,但宁愿不要因为它会增加文件的大小。 在创建PDF(jsPDF:doc.output),你得到的结果是“字符串”像第一张图片,这个文件被正确创建,所以这是没有问题的:使用AJAX POST将PDF文件发送到ASP.NET API

image

下一步将是发送数据,对于这个我使用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"); });

现在发送此服务器时,我看在网络选项卡,并看到,并非所有的数据将被发送出去

enter image description here

内容长度只有1918长,在下一张图片中,您可以看到服务器是如何收到的:

pdf文件: enter image description here

部份JSON对象: enter image description here

的JSON obejct的内容是从字面上:[对象] [对象] 虽然pdf文件仅被部分地发送,只有第一9​​9行使它的服务器(见下图):

enter image description here

如果有人有关于此事的任何提醒这将是一个巨大的帮助,因为我一直在试图解决这一问题PR会超过一天(如果真的有必要,我将不得不返回到base64)。

感谢

+0

真的没人... – lordvlad30

回答

1

最终我做到了只用因为我们使用到大量的时间与这个问题的base64。