Наше веб-приложение будет развернуто как часть системы с SSO. После истечения времени ожидания мои XmlHttpRequests перенаправляются на страницу входа, мы не можем это контролировать.
В каждом обработчике ответа AJAX я должен проверить, является ли текст ответа полной страницей HTML или нет. (Фрагменты HTML и JSON являются действительными ответами.)
Должен признать, я довольно новичок в технологиях на стороне клиента. Я ловлю полные страницы HTML примерно так:
if (data.search(/<html>/) > -1) { ... }
Я предполагаю, что это ужасно неэффективно, опирается на наши условные обозначения и может привести к незначительным ошибкам в будущем.
Особенно учитывая, что там есть целый веб-браузер, основной целью которого является разбор HTML ...
Пожалуйста, поделитесь более элегантными решениями для распознавания текста как полных документов HTML!
(JQuery уже используется в проекте.)
Закрытие редактирования:
Я немного расстроен, когда выбираю один ответ для принятия, поскольку решение, похоже, представляет собой совокупность двух идей плюс из комментариев:
У меня будут отдельные валидаторы для фрагмента JSON и HTML:
Там, где я ожидаю JSON, ответ должен быть JSON.
Там, где я ожидаю фрагмент HTML (а не полный документ), ответ должен заканчиваться закрывающим тегом (без учета пробелов), но не (без учета регистра). Страница входа в систему единого входа должна заканчиваться, мы запишем это «ограничение».
Спасибо всем за помощь!