Как понять запрос от Angular и перенаправить его на Java

0

Я хочу перенаправить пользователя на страницу входа, если другой пользователь зарегистрировался с тем же именем пользователя.

Я могу понять, является ли запрос ajax с

boolean isAjax = "XMLHttpRequest".equals(httpRequest.getHeader("X-Requested-With"));

Если запрос ajax, я отправляю сообщение об ошибке клиенту и перенаправляю его с location.href= 'to the login page'. Если это не так, я перенаправляю его на сервер с помощью httpResponse.redirect("to the login page").

Но некоторые запросы отправляются с $ http angularJS. Я не могу понять, если он отправлен таким образом, и я не могу перенаправить на страницу входа.

Как я могу сделать это правильно?

ПРИМЕЧАНИЕ. Я должен делать это на стороне сервера или на стороне клиента глобальным способом, потому что есть много мест, отправляющих запросы с $ http угловой.

Спасибо за вашу помощь.

Теги:
servlets
redirect

1 ответ

0

Вы можете использовать responseInterceptor в AngularJS через службу $ httpProvider и идентифицировать ответ перед тем, как отправляться вперед.

Ниже приведен пример кода, который использует логику, чтобы понять, нормально ли ответ. Если возникает ошибка, скрыть загрузчик, вместо этого показать его при отказе ответа.

.config(function ($httpProvider) {
  $httpProvider.responseInterceptors.push('mrnHttpInterceptor');
  var spinnerFunction = function (data) {
    //$('.msloader').show();
    return data;
  };
  $httpProvider.defaults.transformRequest.push(spinnerFunction);
})
.factory('mrnHttpInterceptor', function ($q) {
  return function (promise) {
    return promise.then(function (response) {
      return response;
    }, function (response) {
      //When Error....   we need to hide the loader
      $('.msloader').hide();
      return $q.reject(response);
    });
  };
})
  • 0
    А как насчет сервера? Как я могу понять это и отправить ответ в этой области. Потому что я должен отправить некоторую информацию клиенту, чтобы показать информацию других пользователей
  • 0
    $ http - только запрос ajax. Который завернуть Аякс с обещанием. Вы можете использовать службу $ location в Angular для перенаправления пользователя в другую область вашего веб-сайта в зависимости от значения, которое вы получаете для пользователя.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню