Wie kann verhindert werden, dass jQuery ajax einer Weiterleitung nach einem Beitrag folgt?

Ich habe einen Link, der einen Ajax-POST auslöst, um eine Aktion auszuführen. Wenn der Benutzer noch nicht angemeldet ist, gibt die Aktionsmethode eine Weiterleitung 302 zur Anmeldeseite zurück. In diesem Fall möchte ich die Umleitung abfangen, damit ich das Anmeldeformular in einer Lightbox anzeigen kann.

Es scheint jedoch, dass jQuery der Umleitung folgt, ohne die Steuerung zurückzugeben oder eine Rückruffunktion aufzurufen. Im folgenden Code wird die Warnung der 302-Umleitung niemals aufgerufen, und zum Zeitpunkt des Aufrufs der dataFiler-Funktion sind die Daten der Inhalt der Anmeldeseite.

Wie kann ich sehen, dass die Seite eine 302-Umleitung gesendet und zu einer anderen Aktion verzweigt hat?

<code> $.ajax(url,
        {
            data: postArguments,
            type : "POST",
            success: function (data) { alert(' success function'); },
            statusCode:
            {
                302: function () { alert(' received redirect 302'); },
                301: function () { alert(' received redirect 301'); }
            },
            dataFilter: function (data, type) { alert('got data ' + data); return data; }
        });
</code>

Antworten auf die Frage(1)

Lösung für das Problem

sondern bei JavaScript selbst. Es gibt keine Möglichkeit, eine Umleitung in einer AJAX-Anforderung in JavaScript zu erkennen. Die XHR-Objekte des Browsers folgen automatisch und unsichtbar den Weiterleitungen gemäßdie spezifikation.

Die ideale Option wäre, einen Haken in Ihrem Server-Code hinzuzufügenErkennen einer AJAX-Anforderung ("HTTP_X_REQUESTED_WITH" -Header) und geben Sie eine spezielle Antwort zurück, um einen anonymen Benutzer in Ihrem JavaScript zu erkennen und entsprechend zu behandeln.

Ihre Antwort auf die Frage