我正在努力使用ajax调用以.net内核下载生成的pdf。基本上我有一个用户需要选择然后打印pdf输出的订单列表。我可以使用带有动作链接的按钮来做到这一点,但是我需要以某种方式传递选定的值(选定的复选框),因此我使用ajax并传递这些值。
到目前为止,我有这个:
html:
<button id="btnPrintSelectedOrdersDeliveryLabels">Print labels</button>
c#:
return File(Convert.FromBase64String(deliveryAPIprintLabelsResult.Labels), "application/pdf", "delivery_labels.pdf");
javascript:
$.ajax({
method: "GET",
url: '@Url.Action("PrintDeliveryLabelsByOrderId", "Delivery")',
cache: false,
data: {
orderIds: JSON.stringify(orderIds)
},
success: function(result) {
var blob = new Blob([result], { type: 'application/pdf' });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'delivery_labels.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},
error: function() {
console.log('error!');
}
});
}
我很确定该错误在ajax成功调用中,因为我得到了pdf,但它为空白。
答案 0 :(得分:0)
我知道了。 jQuery不支持“ blobs”,因此最终解决方案应使用XHR。