我希望从javascript对象生成服务器端报告并以PDF格式返回。在一个请求中。 我在查询字符串中尝试了一个带有对象的windows.location.href,但查询字符串太长了。 我也试过一个jQuery帖子,对象就是这样的附件:
$.ajax({
url: "/SalesCalls/SalesCallReport/GetReport",
data: JSON.stringify(unmappedItem),
timeout: 10000,
type: 'POST',
contentType: 'application/json',
success: function (response, status, request) {
var disp = request.getResponseHeader('Content-Disposition');
if (disp && disp.search('attachment') != -1) {
var type = request.getResponseHeader('Content-Type');
var blob = new Blob([response], { type: type });
var URL = window.URL || window.webkitURL;
var downloadUrl = URL.createObjectURL(blob);
window.location = downloadUrl;
}
}
});
我从stackoverflow上的另一篇文章中偷走了成功回调中的代码。它将对象传输到服务器,但输出以某种方式不起作用,我只是得到一个空白的pdf。我可以看到响应包含二进制pdf,所以我不知何故错过了一步。 这只在现代浏览器上运行的事实没有问题。