【发布时间】:2016-07-11 23:34:58
【问题描述】:
我正在向应该提供 PDF 文件的 API URL 发送 POST 请求。
$.ajax({
url: "http://ourDevEnv.com:5000/api/v1/Docs/Process",
type: "POST", data: printData,
crossDomain: true,
contentType: "application/json; charset=UTF-8",
success : function(data) {
var WinId = window.open('', 'newwin', 'width=600,height=800');
WinId.document.open();
WinId.document.write(data);
WinId.document.close();
}
});
成功后,我将在新窗口中打开响应数据……但我得到以下输出……
%PDF-1.6
%����
5 0 obj
<</Length 2042/Filter/FlateDecode>>stream
x����o5�-���$�@Aڇ4M�Y����&-�h�����V��R�¿��c���y�kJ{�w�����3�c߽_~{����n��-���Ywp�\6�7ˣ����A����z�z�~�$�F4��Tچ1AE�0E�i>���Y����x�F��1Xa��k�n�m9�Ds�'7[o�\�}���|I�"w�x�,�G䀜�W��k��uj��;ʻƘ�2Q*���%Uv[�%o�9y�aKr�x#����s
ICm#:��[��B#�p��������'��-��1mm�|��
M����3�!���K0�)<�B������ߴ�C� ���CP�����Sm{�VR�f[p:N[nɏ��wA����+Hh!oq��
V˙�Ԩm5n�/��y���?F!ح�B��g0�w�]���Sn �5݃ǻ����Mh �V�%�k��V~���>�/�{o|P.p��P�v�v:tK%ۖ�@�?�����@��kjLު��NS(�X7��z�Ru���a��(TĒL�7K��-�ʄt��M(���)y9�@�E��;VX���}�Eӡ!7�����)֥
�a�
more text like this...
响应头是
{
"access-control-allow-origin": "*",
"date": "Thu, 24 Mar 2016 09:18:28 GMT",
"server": "Kestrel",
"transfer-encoding": "chunked",
"content-type": "application/pdf"
}
发出 POST 请求时我做错了什么吗?还是我们需要在 API 端做任何其他事情。
这是我们在 ASP.NET 中用于将 PDF 发送到 REST 的代码......
Page.Response.Buffer = true;
Page.Response.ClearContent();
Page.Response.ClearHeaders();
Document doc = reportGenerator.RenderDocument();
Stream m = Response.OutputStream;
PdfExportFilter pdf = new PdfExportFilter();
pdf.KeepOriginalImageResolutionAndQuality = true;
pdf.ImageQuality = 200;
pdf.Export(doc, m);
Page.Response.ContentType = "application/pdf";
Page.Response.End();
一些帮助会很棒...
【问题讨论】:
-
尝试像这样
$.ajax({ url: '<url_to_pdf>', success: function(data) { var blob=new Blob([data]); var link=document.createElement('a'); link.href=window.URL.createObjectURL(blob); link.download="Dossier_"+new Date()+".pdf"; link.click(); } });改变你的ajax
标签: jquery asp.net ajax pdf post