Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

20 Апреля, 2024, 09:05:57
 

 Как передать POST запрос открываемой странице.

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн Iaroslav

  • Имперская
    администрация
  • Форумный гуру
  • ****
  • Сообщений: 2509
  • Репутация. +50/-0
    • Просмотр профиля
Часто бывает, что открывая страницу необходимо передать ей какие-то данные, сгенерированные пользователем вот только что. До этого я пользовался методом GET , но он плох тем, что впоследствии коварыне браузеры норовят выполнить оный запрос при каждом вводе ссылки (автодополнение в современных браузерах работает по ооочень странным принципам).
Теперь, вроде как, нашёлся метод, который позволяет решить эту проблему, позволяя открывать страницу, параллельно отправляя ей что-то методом POST при помощи jquery (стандартный метод jquery для отправки POST запросов, увы, в данном случае не применим, ибо он отправляет и переходит отдельно, ну а ajax не получается использовать ввиду наличия у целевой страницы большого числа собственных скриптов).
Суть метода в том, что он динамично создаёт форму и вместо перехода по ссылке выполняет SUBMIT формы.
Собственно функция для него вот такая
function openUrl(url, post)
    {
        if ( post ) {
            var form = $('<form/>', {
                action: url,
                method: 'POST',
                style: {
                   display: 'none'
                }
            });
 
            for(var key in post) {
                form.append($('<input/>',{
                    type: 'hidden',
                    name: key,
                    value: post[key]
                }));
            }
 
            form.appendTo(document.body); // Необходимо для некоторых браузеров
            form.submit();
 
        } else {
            window.open( url );
        }
    }
Пример обращения вот такой
openUrl('http://google.com/zog/login.php', {login:'admin',password:'admin'});
©Взято вот отсюда.

 

Краткая информация об империи