Пробуйте использовать скрытую форму для отправки запроса.
Когда пользователь отправляет HTML-форму, все данные, введенные пользователем в форму, отправляются как запрос GET или POST по URL-адресу, указанному в атрибуте «ACTION» FORM.
<FORM action="http://www.labnol.org/sendmail.php" method="post">
...form contents...
</FORM>
В приведенном выше примере HTTP-запрос POST выдается скрипту sendmail.php при отправке формы. Вы можете добавить target = "_ blank" в тег FORM для обработки запроса в новом окне.
Однако, если вы хотели бы отправить форму на странице в фоновом режиме, не направляя браузер на другую страницу (document.location.href изменения по форме представляет), у вас есть два варианта:
Вариант # 1. Вы можете создать невидимый IFRAME внутри своей HTML-страницы и установить это как цель для оригинальной ФОРМЫ. Это приведет к отправке формы, но без перезагрузки родительского окна.
<FORM action="http://example.com/script.php"
method="POST" target="hidden-form">
...form contents...
</FORM>
<IFRAME style="display:none" name="hidden-form"></IFRAME>
Вариант № 2: существует другой способ, который позволяет создавать пользовательские полезные данные перед отправкой формы. В отличие от представления формы на основе IFRAME, следующий код делает стандартный запрос на отправку формы, и поэтому ваше местоположение браузера изменится, и текущая страница будет добавлена в историю браузера. Кредит: Ракеш Пай.
submitFORM('http://example.com/script.php', 'POST',
{'name':'digital+inspiration', 'age':'100', 'sex','M'});
function submitFORM(path, params, method) {
method = method || "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
//Move the submit function to another variable
//so that it doesn't get overwritten.
form._submit_function_ = form.submit;
for(var key in params) {
if(params.hasOwnProperty(key)) {
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_();
}
В this ссылке вы можете найти способ создать скрытую форму и представить его.
наслаждаться !!
Мне нужно отправить данные json на сервер, как iFrame справится с этим? –
Вы можете добавить его в URL-адрес. Обновлен мой ответ. –
вызов, который делается, не получает сообщение – Mateen