我正在尝试在新的浏览器标签中打开作为响应文本收到的PDF文档。
我的控制器代码是:
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord,'HTML');
$objWriter->save('helloWorld.html');
$pdf = App::make('dompdf.wrapper');
$pdf->loadHTML('helloWorld.html');
$data = $pdf->stream();
return $data;
以及到目前为止的ajax代码(不起作用):
$('body').on('click', '.printInvoice', function () {
var purchase_id = $(this).data("id");
$.ajax({
type: "GET",
url: "/purchases/print" + '/' + purchase_id,
success: function (data) {
console.log(data);
var blob = data;
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "PdfName-" + new Date().getTime() + ".pdf";
document.body.appendChild(link);
link.click();
},
error: function (data) {
var data2 = JSON.parse(data.responseText);
alert(data2['errors']);
}
});
});
上面的代码生成以下错误: “ URL”上的“ createObjectURL”:未找到与提供的签名匹配的函数。
请帮助修复以上代码,或为该问题提供更好的解决方案。
答案 0 :(得分:0)
不要这样, 我有一个更好的选择给您!
不通过ajax发送信息。使用 window.location.href
示例代码:
$('body').on('click', '.printInvoice', function () {
var purchase_id = $(this).data("id");
window.location.href = "/purchases/print" + '/' + purchase_id;
});
别忘了在路线尽头死亡。