Мне нужно опубликовать некоторые данные в веб-сервис с помощью одного нажатия кнопки. Я не хочу показывать ответ, полученный от сервера, что делает простая форма HTML. Итак, я придумал следующий код:
<!DOCTYPE html>
<html>
<head>
<script>
function sendData() {
var form = document.createElement('form');
form.action = "https://posttestserver.com/post.php";
form.method = 'POST';
var input = document.createElement('input');
input.type = 'hidden';
input.name = "args";
input.value = "on";
form.appendChild(input);
form.submit();
alert("Submited!");
}
</script>
</head>
<body>
<button onclick="sendData();">Click Me!</button>
</body>
</html>
Пожалуйста, просветите меня, что именно идет не так, потому что не публиковать никаких данных.
5 ответов
Моей главной целью было
Я не хочу показывать ответ, полученный от сервера
Поэтому я добавил IFRAME на странице, а затем добавил его в качестве цели формы
<form action="MYLINK" method="POST" target="hidden-form">
...
</form>
<IFRAME style="display:none" name="hidden-form"></IFRAME>
Теперь ответ с сервера не виден
Ваши опубликованные данные найдены на http://www.posttestserver.com/data/2015/12/ 16 / 21.17.23451563624
Пожалуйста, смотрите изображение.
По какой причине вы должны использовать JavaScript для создания формы? Это просто не публикует ввод или не удается отправить форму? Вы всегда можете использовать инструмент Web Inspect для просмотра запроса.
Попробуйте открыть свой веб-инспектор и посмотрите на консоль на наличие ошибок JavaScript.
Вы можете использовать ajax для публикации данных вместо отправки формы. params = {'input': 'on'} $ .ajax (url, post, params, succ, err)
Не уверен, почему вы хотите создать форму с использованием JS, просто чтобы отправить некоторые данные на сервер, когда вы могли бы использовать ajax. Как уже упоминалось в предыдущих ответах, вы можете использовать jQuery. Если вы не хотите использовать jQuery, вы могли бы использовать объект XML HTTP Request (XHR)
Простое решение с использованием jQuery было бы
$.ajax({
type: 'POST',
url: 'https://posttestserver.com/post.php',
data: {'args': 'on'}
});
Поскольку вы хотите, чтобы данные отправлялись при нажатии кнопки, вы можете вызвать событие при нажатии кнопки
$('button').on('click', function() {
$.ajax({
type: 'POST',
url: 'https://posttestserver.com/post.php',
data: {'args': 'on'}
});
});
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.