Gated Assets - автоматическая загрузка URL переменной после отправки формы - PullRequest
0 голосов
/ 31 октября 2018

У меня есть 5 кнопок с прямыми URL для загрузки различных ресурсов (PDF и другие типы файлов).

Я бы хотел, чтобы пользователь нажал кнопку, чтобы загрузить ресурс, а затем получил всплывающую всплывающую форму, которую необходимо заполнить, чтобы получить доступ к URL-адресу ресурса.

Как только форма отправлена, затем при отправке она автоматически загружает URL ресурса.

Как мне это сделать?

Я использую форму Marketo, встроенную в всплывающую / модальную страницу веб-сайта.

Я использовал data-toggle="modal" data-target="#myModal", чтобы при загрузке кнопки загрузки открывали модальное / всплывающее окно, и это работает. Мой код выглядит так:

<a href="https://example.com/download.pdf" onclick="VSCapture('Download PDF'); loadfile('https://example.com/download.pdf');" data-toggle="modal" data-target="#myModal" style="margin-bottom: 20px;">Download PDF</a>

Как мне начать загрузку после отправки формы, а не по щелчку? Я предполагаю, что мне нужно передать переменную, но я не знаю, как это кодировать. Какие-нибудь мысли? Спасибо.

1 Ответ

0 голосов
/ 31 октября 2018

Если вы действительно хотите, чтобы это было защищено, вы должны действительно контролировать эту сторону сервера. Не включайте ссылку на PDF-файл на странице, но вместо этого используйте форму с кнопкой отправки. Форма будет отправлена ​​на сервер, сервер проверит опубликованные данные и, если все будет хорошо, redirect переведет пользователя по URL-адресу pdf. Этот дизайн означает, что пользователь не может узнать URL-адрес PDF-файла, не отправив действительную форму.

Способ перенаправления на сервер будет зависеть от вашей веб-инфраструктуры. Например, если вы используете Ruby on Rails, вы бы использовали метод redirect_to, чтобы сообщить клиенту URL-адрес для перехода. Например: redirect_to('https://www.google.com')

В общем, это будет использовать статус 302 с заголовком Location URL, чтобы сообщить браузеру, куда идти дальше.

Если вы создадите тег <a>, как в своем посте, любой может просто щелкнуть правой кнопкой мыши и открыть ссылку на новой вкладке, полностью минуя вашу форму JavaScript. Если вы запечете URL-адрес в атрибуте данных или в своем файле javascript, обычным людям будет сложнее разобраться, но любой, кто знает что-либо о веб-программировании, все равно легко обойдет его без заполнения формы.

В конце концов, вы можете сделать так много, чтобы люди были честными. В идеале ваш сервер будет каждый раз создавать какой-то недолговечный URL, чтобы людям было просто вставлять ссылки друг на друга. Но если люди хотят украсть, они просто поделятся pdf. С пиратством невозможно бороться, но вы можете сделать все возможное, чтобы помочь честным людям оставаться более честными, усложнив обмануть систему.

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