Sie können die Umleitung von Spring nicht tun, wenn Ihre Anfrage json Antwort erwartet. Sie können einen Parameter für die Weiterleitung festlegen, so dass Sie beim Eingeben des Erfolgsblocks den zu umadressierenden Parameter mit window.location.reload();
überprüfen können. Zum Beispiel von einem ähnlichen Posten, überprüfen Sie diese Antwort,
Redirect on Ajax Jquery Call
Eine Idee die der Browser zu lassen ist, dass es durch Hinzufügen einer Umleitung Variable zu dem resultierenden Objekt und die Überprüfung umleiten sollte für es in jQuery
$(document).ready(function(){
jQuery.ajax({
type: "GET",
url: "populateData.htm",
dataType:"json",
data:"userId=SampleUser",
success:function(response){
if (response.redirect) {
window.location.href = response.redirect;
}
else {
// Process the expected results...
}
},
error: function(xhr, textStatus, errorThrown) {
alert('Error! Status = ' + xhr.status);
}
});
});
Sie können alternativ eine Antwort-Header für Umleitung wie response.setHeader("REQUIRES_AUTH", "1")
und in jQuery Erfolg hinzufügen,
success:function(response){
if (response.getResponseHeader('REQUIRES_AUTH') === '1'){
window.location.href = 'login.htm';
}
else {
// Process the expected results...
}
}
die ähnliche Frage Siehe: Spring Controller redirect to another page
funktioniert das, wenn '@ ResponseBody' verwendet wird? – OrangeDog
@OrangeDog scheint es auch nicht arbeiten wird. Im Frühling nicht der Fall ist Umleitung auf eine andere Seite auf json Anfragen. Aktualisiert eine alternative Lösung. – Lucky
Wer hat gesagt, es ein Asynchron-Anfrage war? – OrangeDog