Если вы извлекаете данные PDF с вашего сервера при успешном выполнении AJAX и вам необходимо вывести их пользователю для загрузки, это может быть достигнуто с помощью небольшого количества кодировки base64.Если я правильно понимаю, у вас, скорее всего, есть сценарий, когда ваш сервер, возможно, возвращает PDF или другой тип данных в случае успеха (например, XML).В этом случае у вас есть два шага для обработки запроса:
1) Определите тип содержимого через его заголовок.Вот пример разделения вашего обработчика на основе ответа:
$.ajax({
type: "POST", url: "/test", data: someData, success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf(‘xml’) > -1) {
// handle xml here
}
if (ct.indexOf(‘pdf’) > -1) {
// handle pdf here
}
}
});
2) Получив содержимое PDF, вы можете перенаправить браузер для отображения PDF с помощью трюка с данными base64.Сначала закодируйте содержимое данных в base64.Существует количество библиотек , которые помогут вам сделать это в Javascript.Затем верните свой контент через document.location.href:
document.location.href = 'data:application/pdf;base64,' + base64PDFData;
Это должно получить то, что вам нужно.В этом методе теоретически можно перенаправить любой тип содержимого в браузер.
EDIT :
Следует отметить, что данные URI, к сожалению, не будут работать в IE из-за ограничений безопасности .