Как открыть pdf из ответа ajax - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь открыть документ 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']);
            }
        });
});

Приведенный выше код генерирует следующую ошибку: 'createObjectURL' на 'URL': не найдена функция, соответствующая предоставленной подписи.

Помогите исправить вышеприведенный код или дайте лучшее решение проблемы.

1 Ответ

0 голосов
/ 31 мая 2019

Не делай так, У меня есть лучший вариант для вас!

Не отправляйте информацию через ajax. используйте window.location.href

пример кода:

$('body').on('click', '.printInvoice', function () {
   var purchase_id = $(this).data("id");
   window.location.href = "/purchases/print" + '/' + purchase_id;
});

Не забудьте умереть в конце маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...