jQuery - Formular nach Ajax-Aufruf weiterleiten

Ist es möglich, die Übermittlung eines Formulars zu unterbinden und das Formular innerhalb des Erfolgs eines Ajax-Aufrufs erneut zu übermitteln?

Im Moment erreicht es das Erfolgs-Bit, aber es wird das Formular nicht erneut gesendet, das gesendet und der Benutzer an das weitergeleitet werden sollhttp://example.com Webseite.

Vielen Dank für jede Hilfe im Voraus

Wenn es nicht möglich ist, es auf diese Weise zu tun, gibt es eine andere Möglichkeit, es zum Laufen zu bringen?

$(document).ready(function() {
    $('form').submit(function(e) {
        e.preventDefault();

        $.ajax({
            url: $('form').attr('action'),
            type: 'post',
            data: $('form').serialize(),
            success: function(data) {
                if (data == 'true')
                {
                    $('form').attr('action', 'http://example.com');
                    $('form').unbind('submit').submit(); // mistake: changed $(this) to $('form') - Problem still persists though it does not resubmit and redirect to http://example.com
                }
                else
                {
                    alert('Your username/password are incorrect');
                }
            },
            error: function() {
                alert('There has been an error, please alert us immediately');
            }
        });
    });
});

Bearbeiten:

Stackoverflow-Posts wurden für den folgenden Code ausgecheckt:

Setzen Sie die Übermittlung des Formulars nach dem Aufruf von $ .ajax fortWie kann event.preventDefault wieder aktiviert werden?

Ich dachte nur, ich würde erwähnen, dass ich diesen Code auch ohne Erfolg ausprobiert habe.

var ajaxSent = false;
$(document).ready(function() {
    $('form').submit(function(e) {

        if ( !ajaxSent)
            e.preventDefault();

        $.ajax({
            url: $('form').attr('action'),
            type: 'post',
            data: $('form').serialize(),
            success: function(data) {
                if (data == 'true')
                {
                    alert('submit form');
                    ajaxSent = true;
                    $('form').attr('action', 'http://example.com');
                    $('form').submit();
                    return true;
                }
                else
                {
                    alert('Your username/password are incorrect');
                    return false;
                }
            },
            error: function() {
                alert('There has been an error, please alert us immediately');
                return false;
            }
        });
    });
});

Ich habe diesen Code auch ohne Glück ausprobiert.

$(document).ready(function() {
    $('form').submit(function(e) {
        e.preventDefault();

        $.ajax({
            url: $('form').attr('action'),
            type: 'post',
            data: $('form').serialize(),
            success: function(data) {
                if (data == 'true')
                {
                    $('form').attr('action', 'http://example.com');
                    $('form').unbind('submit').submit();
                    return true;
                }
                else
                {
                    alert('Your username/password are incorrect');
                    return false;
                }
            },
            error: function() {
                alert('There has been an error, please alert us immediately');
                return false;
            }
        });
    });
});

Antworten auf die Frage(3)

Ihre Antwort auf die Frage