Отправить внешнюю форму, не выходя из страницы / сайта

Я просмотрел сайт для получения ответов на этот вопрос, но ничто не говорит о том, что мне нужно (это близко, за исключением того, что он фактически не представляет форму: Предотвратить перенаправление формы или обновить при отправке? ).

Я пытаюсь включить регистрацию списка рассылки (код, заимствованный со страницы регистрации, размещенной на ReverbNation), на веб-сайт.

Форма отправляется правильно, но подписчик перенаправляется на страницу с отвратительной визуализацией на сайте ReverbNation. Я не могу изменить их сценарий и не думаю, что есть API, который я могу использовать, чтобы держать вещи в порядке.

Есть ли способ, которым я могу отправить форму в фоновом режиме, без перенаправления пользователя?

Solutions Collecting From Web of "Отправить внешнюю форму, не выходя из страницы / сайта"

Вот пример в PHP для туннелирования POST.

//set POST variables $url = 'http://domain.com/url-to-post-to'; $fields = array( // Add the fields you want to pass through // Remove stripslashes if get_magic_quotes_gpc() returns 0. 'last_name'=>urlencode(stripslashes($_POST['last_name'])), 'first_name'=>urlencode(stripslashes($_POST['first_name'])), 'email'=>urlencode(stripslashes($_POST['email'])) ); //url-ify the data for the POST foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string,'&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); // returns the response as a string instead of printing it curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); //execute post $result = curl_exec($ch); //close connection curl_close($ch); echo $result; 

Если вы отправляете сообщения в один домен, вы можете использовать пост AJAX. Однако, похоже, вы пытаетесь отправить POST в другой домен, поэтому одна и та же политика происхождения браузера помешает вам сделать это (http://en.wikipedia.org/wiki/Same_origin_policy). (JSONP может обойти это, но он не работает для POST)

Другой способ обойти это, чтобы ваш сервер выполнял POST и туннелировал ответ на вашу страницу.

 <form id='yourForm' action="" onsubmit="javascript: doPostToTunnelPage(); return false;"> <!-- inputs...--> </form> 

Обязательно верните false или ваша страница будет перенаправлена.

в моем понимании, вам нужно отправить форму без перенаправления?

рассмотрим мой пример

 $(function() { $('#myForm').submit(function (e) { e.preventDefault(); $.ajax({ /* params to send the form */ }); return false; }); }); 

IIT будет работать только из-за e.preventDefault.

 If this method is called, the default action of the event will not be triggered. 

Дополнительную информацию см. В документации по jQuery.

Надеюсь, это поможет вам