【问题标题】:sending PDF file using AJAX POST to ASP.NET API使用 AJAX POST 将 PDF 文件发送到 ASP.NET API
【发布时间】:2017-11-02 17:22:58
【问题描述】:

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

下一步是发送数据,为此我使用的是 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 文件:

ths json 对象:

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

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

谢谢

【问题讨论】:

    标签: c# jquery ajax asp.net-web-api jspdf


    【解决方案1】:

    最后我使用 base64 做到了,只是因为我们在这个问题上花了很多时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多