Diese Frage aus Returning ModelAndView in ajax spring mvcAjax POST Aufruf Spring MVC
wird folgen Als einzige Antwort sagt, dass wir json von Kontrolleur Modelandzurückkommen müssen. So ist die Frage
- was kann getan werden, um ModelAndView zurückzugeben?
- Wie die Seite gerendert werden: -
- wird es in Erfolg Abschnitt von Ajax-Aufruf
- oder Feder-Controller gehandhabt werden müssen in der Regel die Seite zurückkehren, wie es in Spring MVC tut
- Wie die Postdaten von Ajax im Controller gelesen werden können.
Update 1: Wie erläutert wurde, habe ich versucht, Beispiel. Hier ist mein Code.
In der obigen Controller-Methode kann ich Daten erfolgreich erhalten. Diese Methode wird von einem Javascript auf home.html aufgerufen. Unten ist JavaScript-Funktion
function callGreeting(){
var nameData={
name : document.getElementById("name").value
}
var dataInJson = JSON.stringify(nameData);
var csrf_token = document.getElementById("token").value;
$.ajax({
type: 'POST',
url: "greeting",
data: dataInJson,
cache:false,
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', csrf_token);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function (response) {
document.open();
document.write(response);
document.close();
},
error: function (data) {
alert("failed response");
}
}); }
Ich habe die Seite erfolgreich gerendert. Die URL der Anwendung ändert sich jedoch nicht von AjaxSpringMVC: 8080/home zu AjaxSpringMVC: 8080/gruß, auch nachdem die neue Seite geladen wurde. Dies geschieht in Spring MVC bei Verwendung ohne Ajax.
Aktualisiert Anfrage mit Details senden. Ich habe versucht, wie Sie vorgeschlagen, d. H. Rendering ganze HTML-Seite, aber URL ändert sich nicht, keine Vorschläge .. bitte? –
URL soll nicht geändert werden, weil der Ajax-Code auf der Seite ausgeführt wird, die die Anfrage ausführt, und Sie nicht explizit JavaScript zum Umleiten verwendet haben. Bitte benutze keine Ajax um Redirect zu machen. Wenn Sie Redirect machen wollen, entfernen Sie den Ajax-Code und 'return redirect:/anotherView '' in Ihrem Controller. –
Perfekt. Das ist das gleiche, an das ich gedacht habe. Leider können wir weder Ajax noch Spingmvc ausschließen. –