Часто бывает, что открывая страницу необходимо передать ей какие-то данные, сгенерированные пользователем вот только что. До этого я пользовался методом 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'});
©
Взято вот отсюда.