Обычно используются два варианта, но ни один из них не включает Ajax. И jQuery тоже не очень поможет:
Вариант 1: IFrame
Поместите невидимый IFrame на свою страницу:
<iframe id="downloadFrame" style="display:none"></iframe>
Когда загрузка должна начаться (вы не упомянули, как она запускается), используйте Javascript (и, возможно, jQuery), чтобы установить URL для IFrame, который в вашем случае выглядит как /getInvoice/approvalId/123
:
var iframe = document.getElementById("downloadFrame");
iframe .src = "/getInvoice/approvalId/123";
Установка URL-адреса IFrame должна запускать браузер для отображения диалогового окна загрузки.
Вариант 2: перейдите по URL загрузки
Второй вариант еще проще. Просто перейдите по ссылке для скачивания. Как только браузер обнаружит, что это MIME-тип, который не может быть отображен, он откроет диалоговое окно загрузки.
Поэтому, когда загрузка запускается, выполните следующий код Javascript:
window.location.href = "/getInvoice/approvalId/123";
Примечание:
Я не уверен, что все браузеры будут надежно отображать диалог загрузки с файлами PDF. Некоторые браузеры могут попытаться отобразить его в самом браузере. Заголовок полезен, но не гарантирует.