Избегайте "двойного поста" в браузере с сообщением в 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
});
Другие вопросы по тегам