Может кто-нибудь пересмотреть, почему не работает обратный редирект? Мой маршрут "/" отображает форму - я использую jQuery для того, чтобы упорядочить пользовательские вводы и отправить его в "/ login" и успешно получить его (проверено с помощью system.out.println) - после этого, когда я пытаюсь перенаправить на /чат / {имя пользователя}, это не работает. Когда я, например, вручную захожу в / chat / john, это работает.
Даже жестко закодированное перенаправление, возвращение "redirect: / chat / John" не работает. На вкладке Сеть веб-консоли браузера я вижу, что он отправляет трафик на / chat / John ", но веб-страница не обновляется.
Когда я пытаюсь перенаправить после успешного вызова Ajax в моем файле JavaScript,это работает. Однако, перенаправление работает, когда у меня «оба» возвращают перенаправление в моем контроллере Spring, и success: function (data) {window.location.href = '/ chat' / {username}} в моем Ajax. странный - не уверен, почему мне нужны оба для работы перенаправления
@RequestMapping(headers = "Content-Type=application/json",value="/login", method=RequestMethod.POST)
public String message(@RequestBody List<Map<String, String>> formData, Model model) {
String username=null;
Map<String, String> formInputs = new HashMap<String, String>();
for (Map<String, String> formInput : formData) {
formInputs.put(formInput.get("name"), formInput.get("value"));
username = formInput.get("value");
}
return "redirect:/chat" + username;
}
@RequestMapping(value="/chat/{username}",method=RequestMethod.GET)
public String chat(@PathVariable("username") String username, Model model) {
model.addAttribute("username", username);
return "message.jsp";
}
Ниже приведен мой файл JavaScript, где я публикую данные формы в "/ login"
$(document).ready(function(){
$("form").on('submit',function(e){
e.preventDefault();
$.ajax({
url:'/login',
type:'POST',
data: JSON.stringify($("form").serializeArray()),
contentType:'application/json',
success:function(data){window.location.href='/chat'}
})
return false;
})
})
})```