Чтение логов сервера.Вы видите IllegalStateException: response already committed
с вызовом sendRedirect()
в трассировке?
Если это так, то это означает, что перенаправление завершилось неудачно, поскольку заголовки ответа уже отправлены.Убедитесь, что вы не касаетесь HttpServletResponse
, прежде чем вызывать sendRedirect()
.Перенаправление, в основном, существует из заголовка ответа Location
с новым URL-адресом в качестве значения.
Если нет, то вы, вероятно, обрабатываете запрос с использованием JavaScript, который, в свою очередь, не смог обработать новое местоположение.
Если ни того, ни другого не происходит, или вы все еще не можете понять это, то нас будет интересовать наименьший возможный фрагмент кода с возможностью копирования и вставки, который воспроизводит именно эту проблему.Обновите свой вопрос, чтобы включить его.
Обновите согласно комментариям, виновник действительно в JavaScript.Перенаправление на POST XMLHttpRequest не будет работать.Используете ли вы homegrown XMLHttpRequest
функции или библиотеку вокруг него, например, как jQuery?Если jQuery, внимательно прочитайте этот вопрос .Это сводится к тому, что вам нужно вернуть определенный ответ, а затем позволить JS / jQuery самому создать новый window.location
.