Я обращаюсь к существующей веб-службе WCF (которая возвращает PDF-файл в виде потока байтов), используя методы jquery ajax.
Когда вызов службы завершается, я получаю переменную javascript, содержащую PDF (переменная содержит двоичные данные, начиная с "%PDF-1.4...").
Я хочу отобразить этот PDF-файл в новом окне браузера, но у меня не получается это сделать.
Мои исследования на данный момент показывают, что я мог бы достичь того, чего хочу, используя data: uri, поэтому мой код, который вызывается после завершения вызова ajax, выглядит следующим образом:
function GotPDF(data)
{
// Here, data contains "%PDF-1.4 ..." etc.
var datauri = 'data:application/pdf;base64,' + Base64.encode(data);
var win = window.open("", "Your PDF", "width=1024,height=768,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no");
win.document.location.href = datauri;
}
Это вызывает открытие нового окна браузера, но содержимое пустое.
Интересно, что если я укажу своему браузеру (IE9) на существующий файл на моем локальном диске, используя файл: uri, например, file://c:/tmp/example.pdf, то я получу тот же результат, то есть пустое окно.
Можно ли каким-либо образом отобразить эти данные PDF?