У меня есть приложение, в котором большинство запросов отправляются через AJAX, хотя некоторые отправляются через «обычные» HTTP-запросы. Если запрос отправлен и время сеанса пользователя истекло, возвращается следующий JSON:
{"authentication":"required"}
Функция JavaScript, которая отправляет все запросы AJAX, обрабатывает этот ответ, показывая всплывающее сообщение и перенаправляя пользователя обратно на страницу входа.
Однако, когда этот запрос не-AJAX получает этот ответ, JSON просто отображается в браузере, поскольку ответ обрабатывается непосредственно браузером (то есть вышеупомянутая функция JavaScript игнорируется). Очевидно, что это не идеально, и я бы хотел, чтобы запросы без AJAX, которые получают этот ответ, вели себя так же, как запросы AJAX. Чтобы добиться этого, я могу придумать 2 варианта:
Зайдите в приложение и преобразуйте все запросы в запросы AJAX. Это будет работать, но может занять много времени!
JSON, показанный выше, генерируется очень простым JSP. Мне интересно, возможно ли добавить обработчик событий JavaScript в этот JSP, который запускается непосредственно перед отображением содержимого в браузере - я предполагаю, что он никогда не будет вызываться для запросов AJAX? Этот обработчик может вызвать другой код JavaScript, который отображает всплывающее окно и выполняет перенаправление.
Если кто-нибудь знает, как именно я могу реализовать обработчик, который я описал в (2), или имеет какие-либо другие потенциальные решения, я был бы очень признателен, если бы они передали их.
Ура,
Дон