Избегайте "двойного поста" в браузере с сообщением в pdf api post
У меня есть рабочая кнопка web-to-pdf, использующая v2 конвертировать api.
<form action="https://v2.convertapi.com/web/to/pdf?Secret=XXX&download=attachment" method="post" enctype="multipart/form-data">
<input type="hidden" name="Url" value="https://www.zg.ch/behoerden/baudirektion/statistikfachstelle/daten/gemeindeportraits.html" />
<input type="hidden" name="FileName" value="Portrait" />
<input type="hidden" name="ConversionDelay" value="5" />
<input type="hidden" name="ViewportWidth" value="1200" />
<input type="hidden" name="ViewportHeight" value="1887" />
<input type="hidden" name="PageSize" value="a4" />
<input type="submit" value="Portrait als PDF ausgeben"/>
</form>
URL-адрес изменяется с помощью jquery в зависимости от выбора на странице. Эта часть тоже работает.
Проблема заключается в том, что людям часто приходится отправлять дважды или даже больше, чтобы получить все PDF-файлы, которые они хотят, и получить сообщение браузера, предупреждающее их о том, что они собираются отправить форму во второй раз. Есть ли способ избежать этого сообщения?
Один из способов - создать кнопку для каждого возможного файла и скрыть отображение всех кнопок в зависимости от выбора с использованием javascript/jquery, но это кажется неэффективным.
Так как я работаю в CMS, я ограничен html и javascript.
Спасибо за любую помощь.
2 ответа
Я не уверен, но однажды я столкнулся с подобной проблемой. Я решил это, передав случайную переменную или метку времени вместе с URL, т.е.
https://v2.convertapi.com/web/to/pdf?Secret=XXX&download=attachment&ignorethisparam=currenttimestamp
Спасибо @manu-avs, ваш ответ помог мне найти решение. В моем случае я использовал jQuery для добавления случайного параметра в action-url.
$('#downloadPdf').submit(function(ev) {
ev.preventDefault(); // to stop the form from submitting
$('#downloadPdf').attr('action', 'https://v2.convertapi.com/web/to/pdf?Secret=XXX&download=attachment&ignoreparam='+ev.timeStamp); //to add random number parameter to action-url
this.submit(); // submit with new url
});