Вызов AJAX и перенаправление страницы - PullRequest
0 голосов
/ 18 февраля 2011

Я могу вызвать AJAX-запрос, когда нажата кнопка отправки формы, но если страница перезагружается / перенаправляет из-за отправки формы, будет ли AJAX-запрос завершен?Я спрашиваю об этом, чтобы я мог сделать что-то вроде загрузки файла через AJAX при отправке формы.

Я почти уверен, что не могу получить вывод вызова AJAX, но могу ошибаться

1 Ответ

2 голосов
/ 18 февраля 2011

Это возможно, но нет гарантии, что запрос будет завершен к тому времени, как вы покинете страницу.Если вы отправляете форму через AJAX и также хотите отправить файл, вы можете поместить загрузку файла в совершенно отдельный тег формы, а затем инициировать отправку формы после успешного вызова AJAX.Например:

<!-- First form with your data -->
<form action="/your/url/here" method="post" id="form1">
   <input type="text" name="title" />
   <input type="submit" value="Save" />
</form>
<!-- Second form with your file -->
<form action="/uploadfile" method="post" id="form2" enctype="multipart/form-data">
   <input type="file" name="fileupload" />
</form>

Затем в Javascript (для краткости используйте пример jQuery, обратите внимание, я вообще не тестировал этот код):

$('#form1').bind('submit', function() {
  $.ajax({
      url: $(this).attr('action'),
      data: $(this).serialize(),
      type: 'post',
      success: function() {
        $('#form2').submit();
      }
  });
  return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...