Как перенаправить перед успешным ответом на запрос ajax

#php #jquery #ajax #forms #post

#php #jquery #ajax #формы #Публикация

Вопрос:

Справочная информация: если отправить форму, процесс занимает 4-5 минут. И я не могу дождаться этого процесса. Мне не нужен ответ от сервера. Поэтому я хочу, чтобы процесс обрабатывался сервером на серверной части, пользователь должен быть перенаправлен на другую страницу после отправки формы. Вот мой код.

     $("form#form").submit(function(e) {
    e.preventDefault();    
    var formData = new FormData(this);

    var call = $.ajax({
        url: '',
        type: 'POST',
        data: formData,
        async: true,
        cache: false,
        contentType: false,
        processData: false
    });

    window.location.replace("http:localhost/members/maga-process.php");
});
 

Проблемы, с которыми нужно справиться:

  • пользователь просто нажимает, чтобы отправить форму. и запрос post должен быть отправлен на URL-адрес, и пользователь перенаправляется на другую страницу, не дожидаясь успешного ответа (потому что процесс занимает 4-5 минут).

Комментарии:

1. В чем проблема? Вы правы в том, что вам не нужно ждать ответа.

2. Я хочу перенаправить на новую страницу ( maga-process.php ) с этой страницы, где я отправляю форму. Я могу перенаправить только после завершения процесса.

3. Вы проверяли эту свою теорию?

4. да, я протестировал много методов. я также использовал метод post jquery.

5. but it's a long process … что такое? Вы имеете в виду задачу, которую вы хотите, чтобы код выполнял? Или вы имеете в виду, что процесс создания архитектуры, о которой я только что упомянул, будет долгим? Кстати, у вас на самом деле нет других вариантов, поэтому я не уверен, в чем проблема. Это стандартный способ справиться с такой ситуацией. Если вы запускаете запрос AJAX, но затем удаляетесь со страницы, вы рискуете, что сервер просто перестанет его обрабатывать. Таким образом, вы не можете этого сделать, вам нужно заставить сервер передать задачу фоновому процессу, который гарантированно будет выполняться правильно.