У меня есть запрос AJAX, который может иметь два возможных результата:
- Сервер отвечает сообщением, которое я должен разместить в
<div>
- Сервер отвечает HTML-страницей, в этом случае мне нужно заменить текущую страницу на новую и изменить адрес (клиент знает адрес перед запросом).
Каким будет решение, если у меня есть запрос AJAX, который должен обрабатывать оба этих случая?
url = "http://example.com"
ajax.request(callback)
function callback(response) {
if (case2(response)) {
history.pushState({}, "New page", url);
document.innerHTML = response
} else {
updateDiv(response)
}
}
Мне интересен правильный способ реализации первой ветки, или если сервер может каким-то образом составить заголовки, которые заставят браузер обрабатывать ответ как обычный ответ HTTP и обновлять местоположение и содержимое страницы, что-то вроде перенаправления с данным контентом.
Я понимаю, что сервер может возвращать ссылку вместо страницы, но в этом случае на клиенте потребуется один дополнительный этап - перенаправление и последующее заполнение новой страницы на сервере.