Откройте новое окно с ответом в формате PDF - PullRequest
0 голосов
/ 05 марта 2010
jqGrid('navButtonAdd',"#pager2",{caption:"Save All",title:"Save & Create Receipt",onClickButton:function () { 
      var s; 
      s = jQuery("#list2").jqGrid('getDataIDs'); 
      alert("selected"); 
      $.ajax({
        type: 'POST',
        url:'http://localhost:3000/order/receipt',
        data: {ids: s},
      });
    }});

С помощью приведенного выше кода я могу отправить данные на сервер, и на стороне сервера он сгенерирует PDF в виде вложения, теперь я хочу просмотреть PDF в ответе через новое окно / вкладку в браузере.

В любом случае, чтобы сделать это?

спасибо, lupind

Ответы [ 3 ]

1 голос
/ 05 марта 2010

Если вы возвращаете URL только что сгенерированного PDF, вы можете вызвать window.open с этим URL.Но я бы не стал использовать Ajax-вызов, если вы все равно хотите открыть новое окно для отображения PDF.В этом случае я бы либо:

  • Использовал окно Javascript window.open, передавая данные в URL-адресе на страницу, которая генерирует PDF, и позволяло выводить его в окно браузера (но это может быть слишкомданные в URL)
  • Создайте специальную форму для хранения данных со своей страницы и отправьте эту форму.Эта специальная форма будет иметь целевой атрибут (target = "_ blank"), чтобы открыть ее в новом окне / вкладке.

Для меня использование двух HTTP-вызовов для одного результата (создание и просмотр PDF) - пустая трата времени.

0 голосов
/ 05 марта 2010

Выдержка из этой ссылки .

Используйте iframe с visibility:hidden, затем измените местоположение iframe на загружаемый файл в javascript при обратном вызове успеха.

 var iFrame = document.getElementById('hiddenIFrame');
 iFrame.src = theurlThatWillProduceTheFile;
0 голосов
/ 05 марта 2010

Вы можете использовать window.open(), чтобы открыть новое окно с указанным URL. Однако будьте осторожны, только когда это необходимо.

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