/ / jQuery AJAX Form Post mit Umleitung bei Erfolg - Javascript, Jquery, Ajax

jQuery AJAX Form Post mit Umleitung auf Erfolg - Javascript, Jquery, Ajax

Ich habe eine ASP.Net MVC-Ansicht, die Formulardaten an eine Controller-Aktion übermittelt. Ich versuche, jQuery zu verwenden, um das Formular über einen AJAX-Aufruf wie folgt zu senden:

$("#submit").click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/controller/action",
data: $("#form").serialize()
});
});

Das klappt super, die Formulardaten werden an dieController genau wie ich es will. Das Problem besteht darin, dass die Controller-Aktion eine Weiterleitung zurückgibt und nachdem das Formular abgeschickt wurde, leitet der Browser den Standort nicht an die URL weiter, die in der Weiterleitungsantwort angegeben ist. Mit Fiddler kann ich sehen, dass der Controller in der Tat die Umleitung zurückgibt und dass eine Anfrage für den durch die Weiterleitung spezifizierten Ort ausgegeben wird, aber der Browser niemals tatsächlich weiterleitet, die Formularseite wird immer noch angezeigt, nachdem der Klick-Handler ausgeführt wurde.

Ich habe versucht, einen $.ajax Ruf das setzt window.location. Dies funktioniert jedoch nicht idealaus ein paar Gründen. Erstens, da ich nicht weiß, wie ich den Umleitungsort im Erfolgs-Handler erreichen kann, muss ich den Standort fest codieren. Zweitens führt die Umleitung im Erfolgs-Handler tatsächlich dazu, dass zwei Anforderungen an den Umleitungsort gestellt werden Ich frage mich, ob es einen besseren Weg gibt, um das zu bekommen $.ajax Rufen Sie an, um eine vom Server zurückgegebene Weiterleitung zu berücksichtigen.

Antworten:

0 für die Antwort № 1

Die AJAX-Anfrage erhält die Umleitung.

Sie könnten Ihre AJAX-Anfrage die Umleitungs-URL zurückgeben lassen (und nicht eine 300 Location), dann umleiten zu dieser URL in der AJAX-Success-Handler.