Ваша handleLogout
функция выполняет AJAX-запрос к серверу - следовательно, любой ответ на перенаправление будет обрабатываться вашей функцией обратного вызова, а не браузером - и перенаправление не произойдет.
Вы можете выполнить синхронизацию,запросите к вашему серверу (не AJAX), или вы можете выполнить перенаправление самостоятельно на стороне клиента (используя некоторый код JS для ваших обратных вызовов).
Я бы порекомендовал первый вариант:
<li><button onClick={this.handleLogout} >Logout</button></li>
становится:
<li><a href="http://localhost:8080/logout" >Logout</a></li>
ОБНОВЛЕНИЕ 1: Если вы вынуждены выполнить запрос, используя метод HTTP POST, вы можете выполнитьперенаправление в обратном вызове onSuccess ( axios понимает перенаправления и следует по перенаправленной ссылке ):
handleLogout = () => {
axios({method: 'post',
url: "http://localhost:8080/logout",
withCredentials: true,
headers: {'X-XSRF-TOKEN': cookies.get('XSRF-TOKEN')}
})
.catch(error => console.log('BAD', error))
.then(reponse => {
window.location.href = "http://localhost:8080/greeting";
});
}