Переадресация XMLHttpRequest и HttpHandler (Java)
Есть сервер на HttpHandler, на котором обрабатывается регистрация/авторизация пользователей. В зависимости от верности веденных данных должна возвращаться определенная страница. При успешности должна делаться переадресация на страницу с чатом.
Код Java:
case "/reg":
//регистрация
user = UserFabric.getUser(requestParamValue, 1);
if (user != null) {
code = 302;
redirectStr = URL + "/im";
sendRedirect(httpExchange, code, redirectStr);
} else {
result = "Неверно введены данные".getBytes();
sendResponse(httpExchange, contentType, code, result);
}
break;
case "/auth":
//авторизация
user = UserFabric.getUser(requestParamValue, 2);
if (user != null) {
code = 302;
redirectStr = URL + "/im";
sendRedirect(httpExchange, code, redirectStr);
} else {
result = "Неверно введены данные".getBytes();
sendResponse(httpExchange, contentType, code, result);
}
break;
}
}
}
outputStream.write(result);
outputStream.flush();
}
private void sendRedirect(HttpExchange httpExchange,
int code,
String redirectStr) throws IOException {
httpExchange.getResponseHeaders().add("Location", redirectStr);
httpExchange.sendResponseHeaders(code, 0);
}
Код авторизации на JS
var url = "http://192.168.0.7:5000/";
var xhrLog = new XMLHttpRequest();
function auth() {
var logName = document.getElementById("1").value,
sName = document.getElementById("2").value,
logEmail = document.getElementById("3").value;
if (logName.length == 0 || sName.length == 0 || logEmail.length == 0){
alert("Заполнены не все поля");
return;
} else {
xhrLog.open("POST", url + "auth", true);
xhrLog.setRequestHeader("Content-Type", "application/json");
let j = {
username: logName,
surname: sName,
email: logEmail
}
let jss = JSON.stringify(j);
xhrLog.send(jss);
console.log(jss);
xhrLog.onreadystatechange = function() { // (3)
if (xhrLog.readyState == 4 && xhrLog.status == 302) {
document.location.href = url + 'im';
}
}
}
}
//вход
authBtn.onclick = function () {
auth();
}
Я пробовал c windwow.location.href но он не работает вообще, хотя страница как бы есть
Где именно и в чем проблема, на стороне клиента или сервера ?