Возможно отправка поста на javascript покажется кому-то тривиальной задачей, но для некоторых, особенно начинающий програмистов моя заметка может оказаться полезной. Например сам я, пришел в Web программирование из C#, и первое время при создании сайтов я вообще не использовал javascript, все делел на Asp.Net, в том числе посты. Первый раз мне понадобилось сделать подобную штуку в процессе создания интернет магазина. Корзина работала полностью на ASP.Net и все покупки хранились в сессии. Проблема появилась когда нужно быть преребросить пользователя на сайт платежной системы при этом передав ей параметы покупок: стоимость, колличество и т.д. Платежная система принимала только посты. А мне нужно было именно «перебросить» пользователя, т.е. выполнить редирект на сайт платежной системы. По началу я пытался сделать пост средствами ASP.Net — HttpWebRequest, но в этом случае не происходила переадресация, а если делать переадресацию Response.Redirect() то, соответственно нельзя было передать пост. В конечном итоге я понял что в данном случае нет выхода кроме как отправить пост с помощью javascript, благо, сделать это совсем не сложно, и я хотел бы показать пример как это сделел я:
Данный пример иллюстрирует отправку поста на вымышленный адрес domain.com/login, передавая параметры Login, Domain, Password. На основе этого примера вы можете сделать, например, кнопочку которая будет вас удобно логинить на ваш почтовый ящик.
<html>
<head>
<title>Javascript Post Example</title>
</head>
<body>
<form>
<input type="button" value="Login" onclick="doPost()" />
</form>
<script type="text/javascript" language="javascript">
function doPost()
{
// создаем форму, указывая адрес получателя
var form = GenerateFormElement('http://win.mail.ru/cgi-bin/auth');
document.body.appendChild(form);
// добавляем параметры
AddFormField(form,'Login','leshaaa');
AddFormField(form,'Domain','mail.ru');
AddFormField(form,'Password','password123987');
// отправляем форму
form.submit();
}
function AddFormField(form, name, value)
{
form.appendChild(GenerateInputElement(name, value));
}
function GenerateFormElement(action)
{
var form = document.createElement('form');
form.setAttribute('action', action);
form.setAttribute('method', 'post');
return form;
}
function GenerateInputElement(name, value)
{
var input = document.createElement('input');
input.setAttribute('type', 'hidden');
input.setAttribute('name', name);
input.setAttribute('id', name);
input.setAttribute('value', value);
return input;
}
</script>
</body>
</html>
Данный пример иллюстрирует отправку поста на вымышленный адрес domain.com/login, передавая параметры Login, Domain, Password. На основе этого примера вы можете сделать, например, кнопочку которая будет вас удобно логинить на ваш почтовый ящик.