Javascript для открытия и рисования нового окна

#javascript

#javascript

Вопрос:

Я отправляю запрос AJax POST на сервлет, и он возвращает файл. Мне нужно распечатать содержимое файла в новом окне, используя javascript. window.open() по умолчанию отправляет запрос как GET. Но мне нужно отправить POST-запрос. Кто-нибудь, пожалуйста, может мне помочь?

Комментарии:

1. Зачем вам post для копирования содержимого файла, полученного из ajax, в новое окно??? Мне кажется, вам не нужен ajax, а просто <form action="post" target="_blank" action="yourservlet"></form>

2. Спасибо mplungjan. Но я создаю свой код следующим образом.

3. Но у меня все внутри JS. Концепция заключается в том, что когда я нажимаю ссылку для просмотра на странице, она должна открывать PDF-файл и помещать его в новое дочернее окно. мое window.open () по умолчанию использует запрос GET. Но мне нужно вызвать doPost () сервлета, чтобы получить PDF. я сыт этим по горло. Пожалуйста, помогите мне.

Ответ №1:

Нет никакого смысла привязывать post к PDF, но попробуйте это:

 <form action="" method="post" target="_blank"></form>
<a href="someservlet?file=somepdf" 
onclick="document.forms[0].action=this.href; document.forms[0].submit(); return false">Somepdf</a>
  

Ответ №2:

Откройте новое окно.

 var handle = window.open();
  

Напишите тег формы на новую страницу

 handle.document.write('<form action="pdfsource.jsp" method="post" id="MyForm">'  
    '<input type="hidden" name="xxx" value="0123">'  
'</form>');
handle.document.close();
  

Затем опубликуйте эту форму

 handle.document.getElementById("MyForm").submit();
  

(Могут быть синтаксические ошибки som, не было времени протестировать)

Комментарии:

1. handle.document.getElementById или handle.document.forms[0] — и вам нужно выполнить handle.document.close() после записи и без перевода строк. Это не PHP