#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