Переадресация 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 но он не работает вообще, хотя страница как бы естьзагрузка страницы Где именно и в чем проблема, на стороне клиента или сервера ?


Ответы (0 шт):