Если вам не очень нужно использовать богатое текстовое поле, вы можете просто использовать текстовое поле и выбрать выравнивание как
textbox.TextAlign = HorizontalAlignment.Center;/*could be left, right or center*/
<input>
с в форме и отправьте его /**
* sends a request to the specified url from a form. this will change the window location.
* @param {string} path the path to send the post request to
* @param {object} params the paramiters to add to the url
* @param {string} [method=post] the method to use on the form
*/
function post(path, params, method='post') {
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
const form = document.createElement('form');
form.method = method;
form.action = path;
for (const key in params) {
if (params.hasOwnProperty(key)) {
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = key;
hiddenField.value = params[key];
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
Пример:
post('/contact/', {name: 'Johnny Bravo'});
РЕДАКТИРОВАНИЕ : Так как это получило upvoted так, я предполагаю, что люди будут вставкой копии это много. Таким образом, я добавил эти hasOwnProperty
проверка для исправления любых непреднамеренных ошибок.
Простая быстрая-и-грязная реализация ответа @Aaron:
document.body.innerHTML += '<form id="dynForm" action="http://example.com/" method="post"><input type="hidden" name="q" value="a"></form>';
document.getElementById("dynForm").submit();
, Конечно, необходимо скорее использовать платформу JavaScript такой в качестве Прототип или jQuery...
Используя эти createElement
функция, обеспеченная в этот ответ , который необходим из-за уязвимость IE с атрибутом имени на элементах, созданных обычно с document.createElement
:
function postToURL(url, values) {
values = values || {};
var form = createElement("form", {action: url,
method: "POST",
style: "display: none"});
for (var property in values) {
if (values.hasOwnProperty(property)) {
var value = values[property];
if (value instanceof Array) {
for (var i = 0, l = value.length; i < l; i++) {
form.appendChild(createElement("input", {type: "hidden",
name: property,
value: value[i]}));
}
}
else {
form.appendChild(createElement("input", {type: "hidden",
name: property,
value: value}));
}
}
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
Вы могли динамично добавить форму с помощью DHTML и затем отправить.
Это похоже на опцию 2 Alan (выше). То, как инстанцировать httpobj, оставляют как осуществление.
httpobj.open("POST", url, true);
httpobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
httpobj.onreadystatechange=handler;
httpobj.send(post);
Я спустился бы по маршруту Ajax как другие, предложенные с чем-то как:
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open("POST", "YourPageHere.asp", true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
self.xmlHttpReq.setRequestHeader("Content-length", QueryString.length);
self.xmlHttpReq.send("?YourQueryString=Value");
Вы могли выполнить вызов Ajax (вероятно, пользующийся библиотекой, такой как использование Prototype.js или JQuery). Ajax может обработать обе опции GET и POST.
Одно решение состоит в том, чтобы генерировать форму и отправить его. Одна реализация
function post_to_url(url, params) {
var form = document.createElement('form');
form.action = url;
form.method = 'POST';
for (var i in params) {
if (params.hasOwnProperty(i)) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = i;
input.value = params[i];
form.appendChild(input);
}
}
form.submit();
}
, Таким образом, я могу реализовать URL, сокращающийся bookmarklet с простым
javascript:post_to_url('http://is.gd/create.php', {'URL': location.href});
Три опции здесь.
Стандарт ответ JavaScript: Используйте платформу! Большинство платформ Ajax абстрагирует Вас простой способ сделать XMLHTTPRequest POST.
Выполняют запрос XMLHTTPRequest самостоятельно, передавание сообщения в открытый метод вместо добирается. (Больше информации в Используя метод POST в XMLHTTPRequest (Ajax) .)
Через JavaScript, динамично создайте форму, добавьте действие, добавьте свои исходные данные и отправьте это.
библиотека Prototype включает объект Хеш-таблицы, с ".toQueryString ()" метод, который позволяет, Вы для легкого превращения объекта/структуры JavaScript в строку запроса разрабатываете строку. Так как сообщение требует, чтобы "тело" запроса было отформатированной строкой строки запроса, это позволяет Вашему запросу Ajax работать правильно сообщением. Вот пример с помощью Прототипа:
$req = new Ajax.Request("http://foo.com/bar.php",{
method: 'post',
parameters: $H({
name: 'Diodeus',
question: 'JavaScript posts a request like a form request',
...
}).toQueryString();
};
Вы могли пользоваться библиотекой как jQuery и $ .post метод .
Если Вы имеете Прототип установленный, можно ограничить код, чтобы генерировать и отправить скрытую форму как это:
var form = new Element('form',
{method: 'post', action: 'http://example.com/'});
form.insert(new Element('input',
{name: 'q', value: 'a', type: 'hidden'}));
$(document.body).insert(form);
form.submit();
Каждый MAC-адрес в мире должен быть уникальным, не присваивайте хосту MAC своей сетевой плате VM.
тайм-аут соединения А действительно предлагает проблему с брандмауэром. Однако обычно Вы ожидали бы, что VM имеет те же возможности как Ваша хост-система. То, что на самом деле делает интерфейс NAT, заменить IP-адресом VM (обычно 10.0.2.15) с IP Вашего хоста в сетевых пакетах, которые отосланы. Для внешнего мира кажется, что Ваш сетевой трафик VM происходит из Вашей хост-системы.
Ответ Ракеша Пая потрясающий, но у меня возникает проблема (в Safari ), когда я пытаюсь опубликовать форму с полем под названием submit
. Например, post_to_url ("http://google.com/", {submit: "submit"});
. Я немного исправил функцию, чтобы обойти это столкновение с переменным пространством.
function post_to_url(path, params, method) {
method = method || "post";
var form = document.createElement("form");
//Move the submit function to another variable
//so that it doesn't get overwritten.
form._submit_function_ = form.submit;
form.setAttribute("method", method);
form.setAttribute("action", path);
for(var key in params) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
document.body.appendChild(form);
form._submit_function_(); //Call the renamed function.
}
post_to_url("http://google.com/", { submit: "submit" } ); //Works!