[JavaScript] Отправка POST-запроса при помощи jQuery

Автор: BlackSilver
12.05.2011 20:33

Была дана задача: сделать страницу со ссылками на другие сайты, причем пользователь должен сразу залогиниться (логин и пароль скрипту известны). Для этого во многих случаях простой ссылкой не обойтись - нужно, чтобы пользователь переходил на сайт с post-запросом.

Единственный способ отправить post-запрос (не Ajax), насколько я выяснил - отправить форму. Этим способом и было решено воспользоваться. Так и появилась небольшая функция, которая по заданным урлу и массиву post-данных создает при помощи jQuery невидимую форму и отправляет её куда надо. Вот эта функция:

 
    function openUrl(url, post)
    {
        if ( post ) {
            var form = $('<form/>', {
                action: url,
                method: 'POST',
                target: '_blank',
                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, '_blank' );
        }
    }
 

Вызывается она вот так:

 
    openUrl('http://google.com/zog/login.php', {login:'admin',password:'admin'});
 

Ах да, ещё один момент. Все сайты открываются в новой вкладке. Если вам этого не надо - поубирайте строки "_blank" из скрипта.

Обновлено 16.05.2011 08:14

 

Комментарии  

 
#1 Sergey 02.09.2011 18:03
Позвольте полюбопытствова ть, а как обратьтать ответ? вернее какой объект будет содержать ответ?
Цитировать
 
 
#2 BlackSilver 05.09.2011 16:00
Ответ откроется у пользователя в браузере.
Цитировать
 
 
#3 Iaroslav 19.02.2013 15:34
Спасибо за метод. ЭТо как раз то, что мне сейчас нужно.
Вас не сильно смутит, что я скопировал описание вашей методики себе на сайт? Ссылку на вас, как на первоисточник, естественно, приложил.
Цитировать
 
 
#4 john 15.05.2015 19:04
а если уже имеется готовое ключь=значение для post запроса, как модифицировать ваш скрипт?
Цитировать
 
 
#5 Алексей 16.05.2015 06:15
Все отлично работает, спасибо!!!
Цитировать
 

Добавить комментарий


Защитный код
Обновить